C 中的浮點值舍入
標準C 函式庫是否包含一個名為round() 的函數來簡化計算浮點值的捨入。儘管 math.h 標頭中存在 ceil() 和 Floor(),但 round() 仍然不存在。
實作舍入函數
儘管 round() C 98 標準函式庫本身並沒有提供,其實作相對簡單。以下是向上取整函數的範例:
double round(double d) { return floor(d + 0.5); }
此實作透過新增 0.5 到輸入來計算舍入值,然後套用下限函數截斷結果。
C 98 標準庫中沒有它的原因
C 98 標準中省略 round() 可能是因為它可以透過多種方式實現。通常使用向上舍入方法,但也存在其他舍入方法,例如舍入到偶數。實現這些不同的方法會增加標準庫的複雜性。
現代 C 解決方案
C 11 引入了內建 round() 函數:std::round、std: :lround 和 std::llround。這些提供了一種更強大、更有效的方法來對浮點值執行舍入操作。
以上是C 中有內建的捨入函數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!