特鬼的问题 public class TestClass { public static void main(String[] args) { float a=5.60f; double b=a; System.out.println(b); }}为什么输出的结果是:5.599999904632568 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是好.我以前也类似的问题,现在还没有搞定就是在一个字符串转为float的时候,这样出样999这种情况不知道哪位高手讲讲!为什么? 浮点数精度问题。原因可以找一本讲计算机组成原理的书来看看。至于如何解决这个具体的问题,可以借助于java.text.DecimalFormat类。详查Java Doc吧。 float:的有效数值是6~7位;double:的有效数值是16~17位。float转换为double有精度补位。或许吧! “5.599999904632568”和“5.60”之间的误差<0.0000001,6位有效数字的精度已经满足了。注意,“N位精度”并不是指“一定有N位完全相同”比如,对于参考值1.0来说,值0.99跟值1.02的误差是哪个大?虽然后者跟原值有两位数字完全一样,而前者没有,但显然前者更精确。 呵呵··解决用java.text.DecimalFormat 强精度 今天试了下你的代码。可没有出现你说的情况。郁闷哦。steedhorse(晨星) 说的也是有道理的。但结果没有误差啊 。兄弟你再看看是不是别的问题。并且希望大家指教。 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 数组越界?好像不是 源代码静态分析 JAVA 的异常处理问题!找不到原因! 后台程序 java编程思想的问题 请问,如何取得文件属性的版本号,版权信息,例如 dll文件的版本是多少? 高手帮忙啊!!socket 读写问题 关于 System.in.read()的基础问题 请教一个问题。如何用Java实现远程控制,一台机器控制另一台,简单的如重启。给个详细的帮助。谢谢。。。 Java初学者,请那位师傅领进门,必有重谢~ 返回类型多态是怎么实现的? 小程序找错 圆的摆放
就是在一个字符串转为float的时候,这样出样999这种情况
不知道哪位高手讲讲!为什么?
原因可以找一本讲计算机组成原理的书来看看。至于如何解决这个具体的问题,可以借助于java.text.DecimalFormat类。
详查Java Doc吧。
double:的有效数值是16~17位。float转换为double有精度补位。或许吧!
注意,“N位精度”并不是指“一定有N位完全相同”比如,对于参考值1.0来说,值0.99跟值1.02的误差是哪个大?虽然后者跟原值有两位数字完全一样,而前者没有,但显然前者更精确。
郁闷哦。
steedhorse(晨星) 说的也是有道理的。
但结果没有误差啊 。兄弟你再看看是不是别的问题。
并且希望大家指教。