统计软件开发中的四舍五入大问题-C# Round 与 ToString 不同

  • 统计软件开发中的四舍五入大问题-哪种四舍五入?
  • 统计软件开发中的四舍五入大问题-平均与四舍五入顺序
  • 统计软件开发中的四舍五入大问题-横向合计和纵向合计
  • 统计软件开发中的四舍五入大问题-分批付款
  • 统计软件开发中的四舍五入大问题-加分还是扣分?
  • 统计软件开发中的四舍五入大问题-JavaScript 不精确
  • 统计软件开发中的四舍五入大问题-C# Round 与 ToString 不同

C# 的 Round 和 ToString,二者效果是不一样的。

decimal d = 1.345m;
Response.Write(Math.Round(d, 2)); // 1.34
Response.Write(decimal.Round(d, 2)); // 1.34
Response.Write(d.ToString("0.00")); // 1.35

Math.Rounddecimal.Round 是一样的,都是靠近最近的偶数。

ToString 则不一样了,ToString 是遇五就入

我就要用 Math.Round 实现遇五就入,怎么办?

指定第 3 个参数:

  • MidpointRounding.AwayFromZero,向远离 0 的数入,看起很难理解,实际它想表达的意思就是:2.5 入为 3(更远离 0 嘛),-2.5 入为 -3(更远离 0 嘛).

  • MidpointRounding.ToEven,这是默认的,最靠近的偶数。

  • 统计软件开发中的四舍五入大问题-哪种四舍五入?
  • 统计软件开发中的四舍五入大问题-平均与四舍五入顺序
  • 统计软件开发中的四舍五入大问题-横向合计和纵向合计
  • 统计软件开发中的四舍五入大问题-分批付款
  • 统计软件开发中的四舍五入大问题-加分还是扣分?
  • 统计软件开发中的四舍五入大问题-JavaScript 不精确
  • 统计软件开发中的四舍五入大问题-C# Round 与 ToString 不同

你可能感兴趣的