Hor*_*ux7 0 java floating-point double rounding-error rounding
以下代码错误地针对人类:
double d = 0.7F;
System.out.println( d );
Run Code Online (Sandbox Code Playgroud)
打印价值:0.699999988079071
以下代码更好用:
double d = Double.valueOf( Float.toString( 0.7F ));
System.out.println( d );
Run Code Online (Sandbox Code Playgroud)
但是创建一个额外的String.没有额外的字符串,是否有更多的性能转换为float?
代码行很简单,只展示了问题.该计划更复杂.浮点值位于复杂模型的一部分中.格式化图层仅使用double.此外,DecimalFormat只接受double而不是float.
是的,使用
double d = 0.7D;
Run Code Online (Sandbox Code Playgroud)
使用F它意味着它是一个float常量,然后它被提升为double并且可能不是最接近0.7的数字,可以用双精度浮点表示,因为尾数不以任何方式扩展.
0.7D是一个double不变的开始.
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |