Java小数精度问题
发布时间:2020-12-15 04:55:16 所属栏目:Java 来源:网络整理
导读:我有一个问题,我必须用长小数位打印. 如 1/3 = 0.33333333333333333333333333333333333333(非常长) 使用C时, 我们可以用 printf(“%.30f”,a); 但我不知道如何使用 Java 解决方法 在C或Java中,您不会在IEEE754二进制浮点数中获得那么多的小数位精度.你最好
我有一个问题,我必须用长小数位打印.
如 1/3 = 0.33333333333333333333333333333333333333(非常长) 使用C时, 我们可以用 printf(“%.30f”,a); 但我不知道如何使用 Java 解决方法
在C或Java中,您不会在IEEE754二进制浮点数中获得那么多的小数位精度.你最好的选择是使用
BigDecimal 并以特定的精度执行算术.例如:
import java.math.*; public class Test { public static void main(String[] args) throws Exception { MathContext context = new MathContext(30); BigDecimal result = BigDecimal.ONE.divide(new BigDecimal(3),context); System.out.println(result.toPlainString()); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |