如何舍入浮点数? C ++ / CLI - VS2015

时间:2016-03-28 07:51:12

标签: floating-point c++-cli rounding precision visual-c++-2015

假设有两个浮点数: a,b 。我需要将 a 的值分配给 b 。然后 b 将被函数转换为文本字符串,我无法更改。转换是通过取浮点数的前3个十进制数而不是舍入来完成的,其他点将被忽略。这导致精度下降。

问题:我怎样才能改变 a 的值,那么转换后 b 就好像它是否被舍入?

希望我设法解释问题,但如果没有,请告诉我。

1 个答案:

答案 0 :(得分:2)

我认为这些功能使用" truncate":1.2346 => 1.234,对吧?

您可以添加0.0005

b = a + 0.0005

示例:

回合降低

a = 1.2341;
b = a + 0.0005; // 1.2346
string result = yourfunction(b); // 1.234

从上到下

a = 1.2346;
b = a + 0.0005; // 1.2351
string result = yourfunction(b); // 1.235