以下是KN King現代編程方法練習的解決方案代碼。針對浮點值的額外精度值
#include<stdio.h>
int main(void)
{
int i;
float j,x;
scanf("%f%d%f",&x,&i,&j);
printf("i = %d",i);
printf("x = %f",x);
printf("j = %f",j);
}
輸入:
12.3 45.6 789
預期結果:
i = 45
x = 12.3
j = 0.6
實際結果:
i = 45
x = 12.300000
j = 0.600000
問:
爲什麼有見過花車額外的十進制值?是否有任何浮點默認精度設置,我怎麼能改變它(只有默認 - 我知道我可以使用格式化字符串來控制精度值在printf
)。我在windows7上使用gcc
(Mingw)。
「爲什麼有見過花車額外的十進制值?」 - 因爲這就是'%f'說明符的工作原理。改用'%g'來代替。 – 2013-11-24 12:25:08
@ H2CO3,如果我在'printf'中使用'%g',則顯示正確。那麼我可以查看float的默認精度集,在所有平臺上都是一樣的嗎? – sarbjit