麻辣堂|资源主站|开发论坛|在线手册
首页注册帮助 
Delphi for php 交流论坛
  您现在的位置:PHP开发资源网 > Java用户组 > 详细内容
待解决
关于java中数的问题
悬赏分:20 - 2008年04月04日

我发现double number1=5.6;
double number2=0.14;
double result;
result=number1/number2;
显示 result=39.99999999999999999999999........
java中还有许多类似这样的问题 请问有没有什么详细的资料来比较全面解释这种情况的


谢谢了!!!!!!!!!!!!!
提问者:znkl2007 04-04 17:05
答复
回复:关于java中数的问题
谢谢

回答者:znkl2007 - 2008-04-04
回复:关于java中数的问题
计算机中小数的精度问题喽

需要明确一点,计算机中能够表示的数的数量都是有限的。

对整数来说比较好理解,可以给一个整数类型界定一个它能表示的数的范围,因为整数都是离散的值。但是小数却不是这样,它是一系列连续的值,仅仅从0~1之间上就存在有无穷多个小数。因此计算机中无法精很确地表示一个小数,而只能够精确到某一个范围。

下面可以到网上找一下二进制小数和十进制小数之间的转换规则。做一下试验就可以看到,十进制的5.6和十进制的0.14在转换成二进制小数时,应该是一个无穷小数。这样,计算机在表达这两个数时本身就不精确了,再对这两个数作除运算,估计也会得到一个无穷小数。



回答者:小灰狼 - 2008-04-04
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
22 + 82 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM