人们!我遇到了一个小问题:我正在使用三个double值进行简单的添加。结果的精度小于使用的值。
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
我发现无法避免这种行为。
答案 0 :(得分:5)
计算中的任何内容似乎都没有错,就像你帖子上的评论所说的那样。
如果您希望了解更多精确度,请考虑查看setprecision()
答案 1 :(得分:0)
没有问题。 0.00208333和3.12708的有效数字均为6.这是正确的结果。
答案 2 :(得分:0)
有时为了根据所需的精度获取值,我们必须指定精度的限制,这是我的代码工作正常,希望它有所帮助:
double minutes = 3;
minutes = minutes / (24.0*60.0);
double hours = 3;
hours = hours / 24.0;
double days = 3;
double age = days + hours + minutes;
printf("%.8f",age);//here i have included the places of precision (.8)