经过进一步调查,这一切都归结为:
(decimal)((object)my_4_decimal_place_double_value_20.9032)
施法两次后变为20.903199999999998
Math.Round(...)
我有一个双精度值,通过值为 20.9032四舍五入到小数点后 4 位
在我的开发环境中,它按原样显示。
但在发布环境中,显示为 20.903199999999998
之后没有任何操作,Math.Round(...)
但该值已被复制并分配。
这怎么可能发生?
更新: 数据不是从数据库加载的。
返回值 fromMath.Round()
分配给原始双变量。
如果此信息有帮助,Release 和 dev 是相同的架构。