首頁>Club>
253
回覆列表
  • 1 # tomorrow951

    利用取整運算的截斷特點實現。比如:int a=0.75;取整後賦值給a的是0,小數點後面的被截斷了。如果要做整數的四捨五入,那麼可以:a=(int)(0.75+0.5);取整後得到的與數學中四捨五入的結果一致,都是1;如果要進行小數點後面的四捨五入,可以這樣計算:要保留小數點後面兩位的小數,即在小數點後面兩位上做四捨五入,0.756float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100;運算是這樣的:先將0.756乘以100,得到75.6,然後利用取值運算的截斷做四捨五入,75.6+0.5=76.1取整後等於76,再除以100,得到結果:0.76

  • 2 # 愛學計算機

    在c語言中這個問題是有多種解決方法的。

    假設我們有個數字3.1415926...我們要在它指定的小數位置上四捨五入。假設第4位四捨五入,要得到結果3.142000

    我們需要如下程式:

    #include<stdio.h>

    int main()

    {double num1,num2;

    num1=3.1415926;

    num1=(int)(num1*1000+0.5);//利用強制型別轉換運算將數字第3位以後的小數部分捨去

    num2=num1/1000; //再將得到的數除以1000還原

    printf("%f",num2);

    return 0;

    }

    如果你是在C99規範的編譯器中,就可以直接使用round函式

    用法如下:

    #include<stdio.h>

    int main()

    {

    num1=3.1415926,num2;

    num2=num1*1000;

    num2=round(num2)/1000;//round(x)返回x的四捨五入整數值,就捨去後面的小數了。

    printf("%f",num2);

    return 0;

    }

    如果你僅僅是要四捨五入輸出一個浮點數,我們可以直接這樣

    #include<stdio.h>

    int main()

    {

    double num1;

    num1=3.1415926;

    printf("%.3f",num1);//0.3是附加格式字元,意為保留小數點後面3位,自動四捨五入

    return 0;

    }

  • 中秋節和大豐收的關聯?
  • WWE的一線選手是怎麼確定的?