【发布时间】:2013-06-17 07:13:01
【问题描述】:
伙计们!我遇到了一个小问题:我正在用三个双精度值做一个简单的加法。结果的精度小于使用的值。
double minutes = 3;
minutes = minutes / (24.0*60.0); // contains 0.00208333
double hours = 3;
hours = hours / 24.0; // contains 0.125
double days = 3; // contains 3
double age = days + hours + minutes; // result is 3.12708
我没有办法避免这种行为。
【问题讨论】:
-
如何检查变量的值?
-
有什么问题?计算似乎没问题。你如何打印结果?你想打印更多的数字吗?
-
请注意:1) 根据您输出值的方式,您可能看不到所有有效数字,并且 2) 双精度值无法准确表示 0.1 之类的值
-
回复:精度:所有四个都打印六个有效数字。区别在哪里?
-
如何得到结果?
printf()%g%f?
标签: c++ double precision addition