![]() |
|
首页│注册│帮助 | |||
相关问题
| • | 求助证明加载类 |
| • | java文件放置问题 |
| • | 大家认为自己学习java的好网址 |
| • | 大家认为自己学习java的好网址 |
| • | 大家认为自己学习java的好网址 |
| • | phpres |
| • | 关于java中数的问题 |
| • | 关于java中数的问题 |
待解决
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在转换成二进制小数时,应该是一个无穷小数。这样,计算机在表达这两个数时本身就不精确了,再对这两个数作除运算,估计也会得到一个无穷小数。
计算机中小数的精度问题喽
需要明确一点,计算机中能够表示的数的数量都是有限的。
对整数来说比较好理解,可以给一个整数类型界定一个它能表示的数的范围,因为整数都是离散的值。但是小数却不是这样,它是一系列连续的值,仅仅从0~1之间上就存在有无穷多个小数。因此计算机中无法精很确地表示一个小数,而只能够精确到某一个范围。
下面可以到网上找一下二进制小数和十进制小数之间的转换规则。做一下试验就可以看到,十进制的5.6和十进制的0.14在转换成二进制小数时,应该是一个无穷小数。这样,计算机在表达这两个数时本身就不精确了,再对这两个数作除运算,估计也会得到一个无穷小数。
回答者:小灰狼 -
2008-04-04

