Java 计算问题??? System.out.println(" "+Math.round(a*0.18)); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 class aaa{ 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 的答案,是因为我们用了我们的数学技巧 jsp文件错误,如何改呀 Maven怎么下载了包,又告诉包找不到呢? JSP+struts2的在线测试系统源码,我想学习下 hibernate关联弱问 java解压rar|An unexpected error has been detected by Java Runtime Environment: JavaScript提示缺少对象 我刚开始看struts,请问这是什么错误 谁有XML SPY5.0的注册号!!! ssh中有什么可以替换hibernate提高效率的 求问,java冒泡排序两次for循环一直提是错误 关于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 的答案,是因为我们用了我们的数学技巧