日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++之取整函数

發(fā)布時間:2024/1/1 c/c++ 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++之取整函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C/C++之取整函數(shù)

后面的double x放的是你的浮點(diǎn)型參數(shù)。

取整函數(shù)向上取整和向下取整有現(xiàn)成的函數(shù)。不過它們的缺點(diǎn)是正數(shù)和負(fù)數(shù)用到的函數(shù)是相反的容易混淆。

函數(shù)名函數(shù)說明------>右邊第一行都是測試數(shù)據(jù),右邊下面都是返回值1.11.5-1.1-1.5
floor()返回不大于自變量的最大整數(shù)11-2-2
ceil()返回不小于自變量的最大整數(shù)22-1-1
round()返回四舍五入到最鄰近的整數(shù)12-1-2

round四舍五入函數(shù)則需要自己寫。

所以這里我就列出自己寫的函數(shù)。直接針對向上取整、向下取整、四舍五入的問題正負(fù)數(shù)通用的函數(shù)。

向上取整

double cei(double x)//向上取整 {return (int)( (x>0.0)?x+1:x-1 ); } //用到了三目運(yùn)算符和強(qiáng)制轉(zhuǎn)換。 //解析,return里面的式子是三目運(yùn)算符。因?yàn)閺?qiáng)制轉(zhuǎn)整形會自動去掉小數(shù)點(diǎn),所以大于0的數(shù)+1,強(qiáng)轉(zhuǎn)整形后小數(shù)位自動舍棄。小于0的數(shù)同理。

向下取整

如果你要輸出為浮點(diǎn)型,整形記得要強(qiáng)轉(zhuǎn)成double型。

(double)( (int)(double x) ) //解析這個就是用到了強(qiáng)制轉(zhuǎn)換整形,舍棄小數(shù)位。

四舍五入

自己寫一個round函數(shù)

double round(double x)//返回浮點(diǎn)型 {return (int)( (x>0.0)?x+0.5:x-0.5 ); } //解析,return里面的式子是三目運(yùn)算符。因?yàn)閺?qiáng)制轉(zhuǎn)整形會自動去掉小數(shù)點(diǎn),所以大于0的數(shù)+0.5如果小數(shù)位小于0.5那么整數(shù)位不會進(jìn)1,大于等于0.5加了0.5后,整數(shù)位會進(jìn)1。小于0的數(shù)同理。

測試代碼

#include <cstdio> #include <iostream> #include <cstring> #include <cmath> #include <algorithm>using namespace std;double round(double x)//四舍五入 {return (int)( (x>0.0)?x+0.5:x-0.5 ); }double cei(double x)//向上取整 {return (int)( (x>0.0)?x+1:x-1 ); } int main(void) {double temp;//臨時函數(shù) double a = 1.1;//temp = double ceil(a);printf("a = %lf\na 的向上取整為%lf\na 的向下取整為%lf\na 的四舍五入為%lf\n\n",a,cei(a),(double)( (int)a),round(a) );double b = 1.5;printf("b = %lf\nb 的向上取整為%lf\nb 的向下取整為%lf\nb 的四舍五入為%lf\n\n",b,cei(b),(double)( (int)b),round(b) );a = -1.1;b = -1.5; printf("a = %lf\na 的向上取整為%lf\na 的向下取整為%lf\na 的四舍五入為%lf\n\n",a,cei(a),(double)( (int)a),round(a) );printf("b = %lf\nb 的向上取整為%lf\nb 的向下取整為%lf\nb 的四舍五入為%lf\n\n",b,cei(b),(double)( (int)b),round(b) );return 0; }

運(yùn)行結(jié)果截圖

總結(jié)

以上是生活随笔為你收集整理的C/C++之取整函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。