如何对浮点数进行舍入,使得最后两位数始终为“00”?

时间:2013-01-31 04:57:51

标签: c numbers rounding

我需要在C中编写一个执行以下操作的程序:

编写程序,以便在用户输入浮点数时,将数字四舍五入到小数点后3位。显示结果时,显示5位小数,这意味着第4和第5位小数都是0。

如何将其舍入到3位小数,然后显示两个零?我不被允许使用任何类型的数学库函数。

3 个答案:

答案 0 :(得分:3)

嗯,“没有数学”方法:D

printf("%.3f00\n", n);

(通常以Round-to-Nearest-Even为准;见R ..的评论。)

答案 1 :(得分:2)

printf("%.5f\n",(int)(number*1000+0.5)/1000.0);

答案 2 :(得分:1)

您的任务有两个步骤:

1)将数字四舍五入到三(3)个小数位。

double n = 0.123456;
n = ((int) (n * 1000.0)) / 1000.0; // => 0.123

2)将数字显示为五(5)个小数位。

printf("%.5f\n", n); // => 0.12300