我希望输出为0.123456789123456789
。但是,结果是浮点类型0.123456789
。双重类型0.12345678912345678
。所以,我尝试使用%030.19f,e
,但这也不起作用。如何输出0.123456789123456789
?
答案 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)
如果您需要打印确切的值,请不要使用float
或double
。
改为使用BigDecimal
来保持
不可变,任意精度带符号的十进制数
使用float
和double
的问题在于它们与二进制十进制数相关的舍入受到影响。