【发布时间】:2018-08-30 14:47:34
【问题描述】:
我需要有关此程序的帮助。浮点数组购买 [2] 值为 90.50,但当我运行代码时,它从 90.50 变为 90.5010.990000。为什么?购买[0] 和购买[1] 打印正常。任何帮助将不胜感激。
#include <stdio.h>
int main() {
float purchases[3] = {10.99, 14.25, 90.50};
float total = 0;
int k;
//Total the purchases
printf("%.2f %.2f %.2f", purchases[0], purchases[1], purchases[2]); // Just so I know whats going on
for (k = 0; k < 3; k++) {
total += purchases[k];
printf("%f\n", total); // Just so I know whats going on
printf("%d\n", k); // Just so I know whats going on
}
printf("Purchases total is %6.2f\n", total);
}
【问题讨论】:
-
"%.2f %.2f %.2f"- 这里没有新行 -
我搜索了答案,但因为我是 c 新手,所以我不知道我在寻找什么。对不起,它是重复的。给我一个月,我会好很多。
-
@P__J__:这个问题的抱怨是关于“90.5010.990000”,这是由
printf中缺少换行符引起的,与浮点运算无关。请不要将问题标记为与that question 重复,因为它们在其中某处包含浮点数。 -
@chux:这个问题的抱怨是关于“90.5010.990000”,这是由
printf中缺少换行符引起的,与浮点运算无关。请不要将问题标记为与that question 重复,因为它们在其中的某处包含浮点数。 -
@EricPostpischil - 请不要打扰所有投票关闭的人,因为系统愚蠢地将他们聚集在一起,因为一个关闭的原因。你可以应用常识,不是吗?
标签: c arrays loops floating-accuracy