这个结果是正确的。float本来就是需要你来确定精度的。想想我们是怎么来比较两个float相等的,不就是确定一个delta比如0.00001,如果落在这个范围内就认为相等。
解决方案 »
- 求 有找工作经验的朋友来帮看下,我目前掌握的技术能找份JAVA程序员的工作吗。。
- java多线程的应用场景
- STRUTS2+JQUERY+DTREE问题请教
- spring中如何滚动数据集(resultset)
- SPRING 都有那些版本呀
- CSDN:五年磨一剑,利剑当出鞘
- 请问Jsp+JavaBean开发简单的Web程序时,Bean中的方法通常用什么来返回结果集?
- 【我是菜鸟】如何系统高效地学习J2EE,欢迎高手们高谈阔论
- 有关ejb开发的问题?
- java 修改xml 相同节点 下的节点值
- 简单的HelloWorld程序怎么会出错阿?请大家指教!
- 请问那里有中文版的UML和Rational Rose教材下载?
系统的事...
float就是这样 .这是硬件的问题 ... 是cup的问题
你用BigDecimal就不会有问题了
《Effective Java》上写的
final BigDecimal TEN_CENTS = new BigDecimal(".10");
int itemsBought = 0;
BigDecimal funds = new BigDecimal("1.00");
for (BigDecimal price = TEN_CENTS;
funds.compareTo(price) >= 0;
price = price.add(TEN_CENTS)) {
itemsBought++;
funds = funds.subtract(price);
}
System.out.println(itemsBought + " items bought.");
System.out.println("Money left over: $" + funds);
}
System.out.println(df.format(9/12));