[导入]很奇怪的double相加
2007-12-03 00:12 午夜瞎想 阅读(874) 评论(0) 编辑 收藏 举报
今天在做报表的时候 突然出现一个奇怪的事情 两个double变量 38.20 -39.80 相加后得出一个 -1.5999999的数
两个数相加怎么会出现这种情况呢!
百度"double相加" 发现大量这样的问题.在java .net里面都存在!
根本的原因是在由精度问题引起的。2进制和10进制的差异产生这样的结果。
继续百度"double decimal区别"
float是单精度,double是双精度,decimal是数字型,它们所占的内存空间不一样,表示的位数也不一样。
除了科学计算以外,一般不用double型的。对于数字(包括小数)一般用decimal型的。
继续搜索 "double decimal 占用内存"
找到一篇很详细的说明各种类型的文章 C#语言基础
结论:数学中的实数不仅包括整数,而且包括小数。小数在C#中主要采用两种类型来表示:单精度(float)和双精度(double)。它们的主要差别在于取值范围和精度不同。程序如果用大量的双精度类型的话,虽然说数据比
相关文章:
文章来源:http://hi.doublog.com/master/blog/item/72/
两个数相加怎么会出现这种情况呢!
百度"double相加" 发现大量这样的问题.在java .net里面都存在!
根本的原因是在由精度问题引起的。2进制和10进制的差异产生这样的结果。
继续百度"double decimal区别"
float是单精度,double是双精度,decimal是数字型,它们所占的内存空间不一样,表示的位数也不一样。
除了科学计算以外,一般不用double型的。对于数字(包括小数)一般用decimal型的。
继续搜索 "double decimal 占用内存"
找到一篇很详细的说明各种类型的文章 C#语言基础
结论:数学中的实数不仅包括整数,而且包括小数。小数在C#中主要采用两种类型来表示:单精度(float)和双精度(double)。它们的主要差别在于取值范围和精度不同。程序如果用大量的双精度类型的话,虽然说数据比
相关文章:
文章来源:http://hi.doublog.com/master/blog/item/72/