c# - 总是在 C# 中四舍五入一个值

标签 c# double decimal

我想根据小数点后第三位舍入值。它应该始终采用 UP 值和四舍五入。我使用了 Math.Round,但它没有产生我预期的结果。

场景一

var value1 = 2.526;
var result1 = Math.Round(value1, 2); //Expected: 2.53 //Actual: 2.53

场景二

var value2 = 2.524;
var result2 = Math.Round(value2, 2); //Expected: 2.53 //Actual: 2.52

场景 1 可以。它正在产生我预期的结果。 在第二种情况下,我的金额为 2.522。我想考虑小数点后第三位(在这种情况下为“4”),它应该四舍五入。预期结果为2.53

无论第三位小数是多少(无论是小于 5 还是大于 5),它都应该向上取整。

谁能给我一个解决方案?我不认为 Math.Round 在这方面对我有帮助。

最佳答案

正如 Jon 所说,请改用小数。然后您可以执行此操作以始终保留 2 位小数。

Math.Ceiling(value2 * 100) / 100

关于c# - 总是在 C# 中四舍五入一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21599118/

相关文章:

c++ - float 的二进制表示

java - 将十进制值四舍五入到最接近的 0.05 值?

c# - 这个 C# "using"指令是什么?

c# - 从另一个集合更新集合的有效方法

c# - CollectionAssert.AreEquivalent 与 Assert.Equals()

swift - 如何在 swift 中将 Double 舍入到最近的 Int?

c++ - Double 的乘法不如 float 的乘法精确

c++ - 为什么存款的第一个输出以科学计数法显示?

r - 在 R 中编写每列具有不同小数位数的数据框

c# - Convert.ChangeType 可以在未经检查的上下文中运行吗?