float x, b; int m;
scanf_s("%f",&x);
m = (1000 * x + 0.5);
b = m / 1000;
printf("保留小數點後三位的數是:%f",b);
//我輸入123.4567,然後結果是123.00000,為毛啊?
不應該是123.457嗎?
b = m / 1000;是先除在轉float,不是先轉再除。因為m和1000都是整數。所以m/1000除完會截掉小數,整數部分再轉float.
如果b=m*1.0/1000就是你要的結果了