天天看點

C語言中實作四舍五入C語言中實作四舍五入:

C語言中實作四舍五入:

(int)(a+0.5)即可。

很巧妙的用了取整規則。

也不用導入math.h

同樣注意負數的情況。

把 + 換成 - 即可。

float f = ……;

int i = (int)(f + 0.5);

i就是f四舍五入的結果。

今天我要介紹在C語言中實作資料四舍五入的算法。

我們知道,C語言中去除小數位采用的方法就是強制性轉化成整型類型。那麼假如我們要對一個小數保留三個小數位而第四個小數位按照四舍五入的規則進行,該怎樣實作呢?很簡單,我們将數字擴大1000倍,使得第四位小數稱為新數字的第一位,然後我們可以給它加上0.5後再進行強制性轉化。加0.5的原因就是:

假如這個小數位的數值大于5,加上0.5能夠實作進位的作用,倘若小于0.5,就沒有實作進位的作用。如此,就能實作小數位的四舍五入。然後我們再對這個數值進行強制性轉化,然後再處以1000.0(記住,一定要1000.0,否則就會出現隐式轉化),在輸出的時候用%0.3f以實作保留三位小數。

# include <stdio.h>
int main(void) {
    float a;
    scanf("%f", &a);
    a = (int)(a*1000+0.5)/1000.0;
    printf("%0.3f", a);
    return 0;
}
           

有一個round函數可以直接調用,

round(x)

參數時double型,傳回小數對整數部分的四舍五入值

比如 round(3.623); 傳回4

C語言中保留兩位小數:小技巧

float a = 3.456; //保留到小數點後兩位

float b =(int)((a * 100) + 0.5) / 100.0;

輸出結果為3.46

精度比較高

float a = 23.456789;

printf(“%.2f”,a); //輸出為23.45

#include"stdio.h"
#include"math.h"
void main()
{
float x;
scanf("%f",&x);
int y = round(x);
printf("%d",y);
}

           

轉載于:https://blog.csdn.net/weixin_38505045/article/details/79994536

繼續閱讀