System.out.println(" "+Math.round(a*0.18));
解决方案 »
- 【没分了,求懂的好心人】solr索引数据库后的增量更新(delta-import )问题???
- struts 1.3中使用Tiles出错!
- 求助,JBOSS虚拟机崩溃了
- 如何获得hibernate实体类集合属性的元素类型 或 如何获得指定Class的集合属性的元素类型
- SSH的表连接的查询,怎么做啊??????很急很急啊!
- java中如何循环截取字符串
- Tiles和iframe结合的问题。
- 谁给我一个带分页的STRUTS程序,thank you
- 请教!
- 我安装了j2ee sdk 1.4版,在运行tutorial 时总出错,请高手帮忙,我是j2ee的新手
- 关于JDBC数据库连接的问题
- 希望大家给我推荐一下啊,等待……
{
public static void main(String args[])
{
int a=5;
System.out.println(" "+(float)(a*0.18));
}
}这样就ok了,,谢谢大家的帮助
(float)(a*0.18)
能够得到真确的答案,其事实是我们只是忽略了一些精度
从某种意义上来说,这个答案的精度不如 a*0.18 因为其是 double 型的
我们想象就知道了 0.18 用二进制是表达不出来的(至少是 double 精度表达不了的)
所以一般精度的计算机得不到 0.18 的准确值的,就只有减小精度咯
而人却不同,在小学就知道不必先知道 0.18 的精确二进制值就可以
完美的算出 5*0.18 的答案,是因为我们用了我们的数学技巧