1. 程式人生 > >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);
}