DELPHI 追踪到的奇特结果 很奇特. 大神们 帮忙
DELPHI 跟踪到的奇特结果 很奇特.... 大神们 帮忙[解决办法]var rat ,alot :Extended len_c :integer al
DELPHI 跟踪到的奇特结果 很奇特.... 大神们 帮忙
[解决办法]var rat ,alot :Extended ;
len_c :integer ;
alot :=606.795;
len_c :=100;
rat := alot * len_c + 0.5;//这里rat = 606.795 * 100 + 0.5 刚好等于60680啊
rat := Trunc(rat);//这里Trunc后变为了60679应该和rat的变量类型为Extended有关,你改为Real试下。
rat := rat / len_c;
[解决办法]刚测试了下不会出现你说的那种情况啊,是不是你编译器里面勾选了什么。。。。
[解决办法]real和double一样
http://www.cnblogs.com/del/archive/2007/12/04/982167.html
[解决办法]对照下real的范围进行比较下
[解决办法]我觉得就是精度的问题
用real来表示606.795和用Extended来表示606.795在内存中的结果有可能是不一样的,比如
real的结果可能是606.794999999,而Extended则可能是606.795000000000000000000000000000001
累积的结果导致LZ的上述现象
另外,你可以试试用
606.785来测试一下你的程序
或许你找一下资料看一下小数,浮点数在计算机中是如何存储的能够加深一些了解
可以网上查一下“浮点数二进制表示”应当可以解释一二。