【问题标题】:Double is not rounded using Math.Round function?Double 不使用 Math.Round 函数四舍五入吗?
【发布时间】:2022-12-12 21:46:54
【问题描述】:

我正在创建新模型,该模型的属性之一是 BruttoPrice(可空双精度类型),我想为该属性分配我的 Item3(可空双精度类型)值,但四舍五入到小数点后两位 - 所以我正在使用 Math .Round 函数但不起作用

Assigning item3 to bruttoPrice

var model = new Model
            {
                BruttoPrice = Math.Round(val.Item3 ?? 0, 2),
            };

My model output

【问题讨论】:

  • Null 合并运算符不能应用于 double 类型的数据。那应该会引发错误。你的代码是如何工作的?
  • 我的错,项目 3 是一个可为 null 的双精度值,这就是为什么我需要做 'item3 ?? 0' 在空值的情况下
  • 请在问题本身中发布代码,而不是代码的屏幕截图。

标签: .net math rounding


【解决方案1】:

您不能直接舍入可为 null 的双精度值。将其分解为 2 个步骤:

  1. 检查值是否为空。
  2. 如果不是,则将其四舍五入到所需的小数位。

    如果(val.Item3.HasValue) { 结果 = Math.Round(val.Item3.Value, 2); }

【讨论】:

    猜你喜欢
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2021-11-30
    • 2014-04-21
    • 2023-01-12
    相关资源
    最近更新 更多