欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++的ceil、floor和round用法解讀

 更新時間:2025年07月14日 14:39:06   作者:咸魚_要_翻身  
文章介紹了C++中實現(xiàn)取整的三種方法:標準庫函數(shù)(ceil、floor、round)和手動整數(shù)運算公式,強調(diào)推薦使用cmath中的標準函數(shù),注意其返回double類型及負數(shù)處理規(guī)則

在 C++ 中,向上取整(Ceiling)、向下取整(Floor)、四舍五入(Rounding) 可以通過標準庫 <cmath> 提供的函數(shù)實現(xiàn)。

1. 標準庫函數(shù)(推薦)

(1)std::ceil(x)—— 向上取整

功能:返回 ≥ x 的最小整數(shù)(即“天花板值”)。

頭文件#include <cmath>

示例

#include <cmath>
#include <iostream>

int main() {
    double x = 3.2;
    double y = -2.7;

    std::cout << std::ceil(x) << std::endl;  // 輸出 4.0
    std::cout << std::ceil(y) << std::endl;  // 輸出 -2.0

    return 0;
}

(2)std::floor(x)—— 向下取整

功能:返回 ≤ x 的最大整數(shù)(即“地板值”)。

頭文件#include <cmath>

示例

#include <cmath>
#include <iostream>

int main() {
    double x = 3.7;
    double y = -2.3;

    std::cout << std::floor(x) << std::endl;  // 輸出 3.0
    std::cout << std::floor(y) << std::endl;  // 輸出 -3.0

    return 0;
}

(3)std::round(x)—— 四舍五入

功能:返回最接近 x 的整數(shù)(四舍五入)。

頭文件#include <cmath>

示例

#include <cmath>
#include <iostream>

int main() {
    double x = 3.4;
    double y = 3.6;
    double z = -2.5;

    std::cout << std::round(x) << std::endl;  // 輸出 3.0
    std::cout << std::round(y) << std::endl;  // 輸出 4.0
    std::cout << std::round(z) << std::endl;  // 輸出 -2.0(注意:-2.5 四舍五入為 -2)

    return 0;
}

2. 手動實現(xiàn)(適用于整數(shù)運算)

(1)向上取整(Ceiling)

int ceil_division(int a, int b) {
    return (a + b - 1) / b;
}

示例

int x = 7, y = 3;
int ceil = (x + y - 1) / y;  // ceil = 3(因為 7/3 ≈ 2.333,向上取整得 3)

(2)向下取整(Floor)

int floor_division(int a, int b) {
    return a / b;
}

示例

int x = 7, y = 3;
int floor = x / y;  // floor = 2(因為 7/3 ≈ 2.333,向下取整得 2)

(3)四舍五入(Rounding)

int round_division(int a, int b) {
    return (a + b / 2) / b;
}

示例

int x = 7, y = 3;
int rounded = (x + y / 2) / y;  // rounded = 2(因為 7/3 ≈ 2.333,四舍五入得 2)

3. 注意事項

std::ceil、std::floor、std::round 返回 double,如果需要整數(shù),需要顯式轉換:

int ceil_val = static_cast<int>(std::ceil(3.2));  // ceil_val = 4
int floor_val = static_cast<int>(std::floor(3.7));  // floor_val = 3
int round_val = static_cast<int>(std::round(3.6));  // round_val = 4

負數(shù)情況

  • std::ceil(-2.3) 返回 -2.0(向上取整)。
  • std::floor(-2.3) 返回 -3.0(向下取整)。
  • std::round(-2.5) 返回 -2.0(四舍五入)。

編譯選項(某些編譯器可能需要 -lm 鏈接數(shù)學庫):

g++ program.cpp -o program -lm

4. 總結

方法適用場景示例
std::ceil(x)標準向上取整(推薦)std::ceil(3.2) → 4.0
std::floor(x)標準向下取整(推薦)std::floor(3.7) → 3.0
std::round(x)標準四舍五入(推薦)std::round(3.6) → 4.0
(a + b - 1) / b整數(shù)向上取整(7 + 3 - 1) / 3 = 3
a / b整數(shù)向下取整7 / 3 = 2
(a + b / 2) / b整數(shù)四舍五入(7 + 1) / 3 = 2

推薦優(yōu)先使用 <cmath> 提供的標準函數(shù),它們更通用且可讀性更好。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C++中char*轉換為LPCWSTR的解決方案

    C++中char*轉換為LPCWSTR的解決方案

    最近在學習C++,遇到了一個char*轉換為LPCWSTR的問題,通過查找資料終于解決了,所以下面這篇文章主要介紹了C++中char*轉LPCWSTR的解決方案,文中通過詳細的示例代碼介紹的很詳細,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 線程按指定順序輸出字符到數(shù)組的實例代碼

    線程按指定順序輸出字符到數(shù)組的實例代碼

    這篇文章主要介紹了線程按指定順序輸出字符到數(shù)組的實例代碼,需要的朋友可以參考下
    2014-02-02
  • C語言完全平方整數(shù)的判斷

    C語言完全平方整數(shù)的判斷

    大家好,本篇文章主要講的是C語言完全平方整數(shù)的判斷,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C/C++中getline函數(shù)案例總結

    C/C++中getline函數(shù)案例總結

    這篇文章主要介紹了C/C++中getline函數(shù)案例總結,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C語言如何解決約瑟夫環(huán)問題

    C語言如何解決約瑟夫環(huán)問題

    文章總結了四種解決特定問題的方法,包括單循環(huán)鏈表法、循環(huán)數(shù)組法、遞歸法和迭代法,并分享了個人經(jīng)驗
    2024-12-12
  • C++中類的成員函數(shù)及內(nèi)聯(lián)函數(shù)使用及說明

    C++中類的成員函數(shù)及內(nèi)聯(lián)函數(shù)使用及說明

    這篇文章主要介紹了C++中類的成員函數(shù)及內(nèi)聯(lián)函數(shù)使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Qt實現(xiàn)簡易計時器的示例代碼

    Qt實現(xiàn)簡易計時器的示例代碼

    計時器實現(xiàn)四個功能:開始計時、停止計時、暫停計時以及打點。當點擊暫停時,開始按鈕和停止按鈕無法點擊。當點擊停止時,開始按鈕和暫停按鈕無法點擊,此時停止按鈕變?yōu)榍辶?。本文將用Qt實現(xiàn)這樣的一個計時器,需要的可以參考一下
    2022-06-06
  • C/C++在VScode中的配置教程詳解

    C/C++在VScode中的配置教程詳解

    這篇文章主要介紹了C/C++在VScode中的配置教程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • C語言實現(xiàn)電話簿管理系統(tǒng)

    C語言實現(xiàn)電話簿管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電話簿管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 深入了解C++中map用法

    深入了解C++中map用法

    下面小編就為大家?guī)硪黄钊肓私釩++中map用法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨想過來看看吧
    2016-06-06

最新評論