【发布时间】:2017-03-17 06:35:08
【问题描述】:
我正在尝试下面的代码,但在执行344741.79 后,值显示为344741.78
意思是小数点后.79 被转换为.78,我真的很想知道为什么我在转换后没有得到完全相同的值,是哪个逻辑在做这个?
public static void main(String[] s) {
double a = 344741.79;
System.out.print(new Float(a));
}
【问题讨论】:
-
在 Java 中从
double转换为float时会丢失一些精度。 -
虽然这里可能会或可能不会出现这种情况,但在从 Java 源代码文字转换为
double(也不能代表所有小数)时,您也会在编译期间失去精度。跨度> -
如果您需要精度,您应该使用 BigDecimal 类
标签: java casting floating-point type-conversion