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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++之取整函数

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

C/C++之取整函數

后面的double x放的是你的浮點型參數。

取整函數向上取整和向下取整有現成的函數。不過它們的缺點是正數和負數用到的函數是相反的容易混淆。

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

round四舍五入函數則需要自己寫。

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

向上取整

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

向下取整

如果你要輸出為浮點型,整形記得要強轉成double型。

(double)( (int)(double x) ) //解析這個就是用到了強制轉換整形,舍棄小數位。

四舍五入

自己寫一個round函數

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

測試代碼

#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;//臨時函數 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; }

運行結果截圖

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。