[英]Float to int in C unexpected output
我在C中有以下代碼
#include <stdio.h>
int main()
{
float a = 1.88;
a =a - (0.25 * 7 + 0.1 * 1);
a = a *100;
printf("a = %f\n",a );
int b =(int) (a);
printf("b = %d\n", b);
}
b的值應為2
但我得到以下輸出-
a = 3.000000
b = 2
為什么會這樣呢?
如果你改變
printf("a = %f\n",a );
至
printf("a = %.20f\n",a );
它輸出
a = 2.99999952316284179688
如您所見,這不是3。
因此,轉換將其截斷為2。
當浮點數轉換為int時,僅存儲整數部分,即2.9僅存儲2,其余部分被截斷。 分割時類似
#include<stdio.h>
main()
{
int a=12/5;
printf("%d\n",a);
}
這里的結果是2.4,但是.4被截斷了..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.