在一些地方,命令printf("%f\n", 5/2);
是不同的。 爲什麼,以及如何解決這個問題?爲什麼使用printf的輸出不同?
int main()
{
int a = 65;
char c = (char)a;
int m = 3.0/2;
printf("%c\n", c); // output: A
printf("%f\n", (float)a); // output: 65.000
printf("%f\n", 5/2); // output: 65.000
system("PAUSE");
printf("%f\n", 5.0/2); // output: 2.5000
printf("%f\n", 5/2.0); // output: 2.5000
printf("%f\n", (float)5/2); // output: 2.5000
printf("%f\n", 5/2); // output: 2.5000
system("PAUSE");
printf("%f\n", 5/(float)2); // output: 2.5000
printf("%f\n", (float)(5/2)); // output: 2.0000
printf("%f\n", 5/2); // output: 2.0000
system("PAUSE");
printf("%f\n", 5.0/2); // output: 2.5000
printf("%d\n", m); // output: 1
printf("%f\n", 5/2); // output: 2.5000
system("PAUSE");
return(0);
}
你到底想要「修復」什麼? – 101010
我想「固定」到它的實際輸出,而不是任何其他輸出...... –
'5/2' - >'2'。它是整數數學。這就是C的整數工作方式。 – chux