簡體   English   中英

浮動到int C意外輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM