在Java中使用float类型或双输出十进制数(eclipse)

时间:2018-03-29 12:29:37

标签: java eclipse floating-point

Code

我希望输出为0.123456789123456789。但是,结果是浮点类型0.123456789。双重类型0.12345678912345678。所以,我尝试使用%030.19f,e,但这也不起作用。如何输出0.123456789123456789

2 个答案:

答案 0 :(得分:1)

对于更大的数字,您可以使用BigDecimal。例如:

import java.math.BigDecimal;

public class HelloWorld{

 public static void main(String []args){
    BigDecimal bdcm=new BigDecimal("0.123456789123456789");
    System.out.println(bdcm);
    BigDecimal bdcm2=new BigDecimal("100.123456789123456789");
    System.out.println(bdcm.add(bdcm2));
 }
}

输出正确:)

答案 1 :(得分:1)

如果您需要打印确切的值,请不要使用floatdouble

改为使用BigDecimal来保持

  

不可变,任意精度带符号的十进制数

使用floatdouble的问题在于它们与二进制十进制数相关的舍入受到影响。