将双精度数字四舍五入到十分之一位
Rounding a double number up to the tenths place
可能的重复项:
round(( 表示 C++ 中的浮点数
好吧,假设我有8.47434
号码.我想将其四舍五入到 8.5 和小数点后 1 位。我将如何在C++中做到这一点
乘以
10
,四舍五入,再除以 10
。
例:
round(10 * 8.47434f) / 10;
编辑:
好的,我刚刚发现round()
并不总是存在于math.h
中。
以上在 gcc 和 icl(带有 Microsoft 的库(中有效,但在 tcc 中不起作用。
然而,floor()
是标准库的一部分。所以要四舍五入,我们可以添加0.5
并使用 floor()
.
例:
floor(10 * 8.47434f + 0.5f) / 10;
std::floor(d)+std::floor((d-std::floor(d))*10.0+0.5)/10.0
这样做不会失去精度,而不是将原始双倍乘以 10 的其他答案。(顺便说一下,d
将是你的号码(
但要预先警告:浮点数不能代表任何东西。双打:1.35
将四舍五入到1.3999999999999999
; 123.34
将首先表示为123.34999999999999
,使其四舍五入为123.3
而不是预期的123.4
;等
你可以乘以 10 将 0.5 强制转换为 int 并除以 10。
如果数字为负数,则减去 0.5 或乘除负 10。
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 我应该使用什么来代替void作为变体中的替代类型之一
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 在除法中不需要四舍五入
- 使用 BMI 计算器对C++中的数字进行四舍五入的问题
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 四舍五入C++
- 模板化类如何解析在其类型之一上调用的重载非成员函数?
- 如何将 std::filesystem::p ath 转换为 LPCSTR,以便在 LoadLibrary() 变体之一
- 在数学上将浮点数四舍五入到 N 位小数
- 如何在C++中对OpenCV垫的小数进行四舍五入?
- C++ 一个函数,可以根据接受的值返回两种类型之一
- 当结构在C++中也被引用时,它是否可以返回其成员之一?
- 输出一个数字,该数字可能是三种类型之一
- gtest:检查字符串是否等于两个字符串之一
- 向下四舍五入到五个c++的最近倍数
- C++浮点值限制在十分之一位
- 将货币金额四舍五入到最接近的镍、四分之一、1 美元、5 美元等面额的最佳方法是什么?
- 修剪十分之一到千分之十数字的算法
- 将双精度数字四舍五入到十分之一位