為什么結(jié)果有問題?
float a = 3.001;
int b = (int)(a - 1.001);
printf("%d",b);
為什么出現(xiàn)的結(jié)果是1?
而且如果我改成:
float a = 3.000;
int b = (int)(a - 1.000);
printf("%d",b);
結(jié)果又變成2了?
求解。
float a = 3.001;
int b = (int)(a - 1.001);
printf("%d",b);
為什么出現(xiàn)的結(jié)果是1?
而且如果我改成:
float a = 3.000;
int b = (int)(a - 1.000);
printf("%d",b);
結(jié)果又變成2了?
求解。
2018-08-12
舉報
2018-08-21
四舍五入,因為3.001不大于或等于3.5,所以會被int默認為2
2018-08-15
#include <stdio.h>
int main()
{
??? double num = 2.5;????? //定義浮點型變量num并賦值為2.5
??? int numOne = 2.5;
??? int numTwo = (int)numOne;
??? printf("num的整數(shù)部分是%d\n", numOne); ?
??? return 0;
}
2018-08-12
注意看一下你的數(shù)據(jù)類型,你所說的問題代碼中第一行a的數(shù)據(jù)類型如樓上所說是單精度浮點型。數(shù)據(jù)類型有誤編譯器自然不會給你正確的答案
2018-08-12
float就成了3-1.001了而不是3.001-1.001 應(yīng)該是這樣
2018-08-12
float 是單精度浮點型