【发布时间】:2021-04-01 07:18:35
【问题描述】:
我正在做一些项目,需要做一些数学运算:
decimal X = (Value / 881) * (item.Type ? 130: 130 * 2);
例如,参数“Value”等于 3000。
如果“值”的类型为 int,则结果为 390..
如果“值”的类型为 decimal,则结果为 442.67
这怎么可能??
【问题讨论】:
-
当
Value是int类型时,您有整数除法:Value / 881即3000 / 881 == 3;当Value是decimal然后3000m / 881 == 3.405...m -
对
int进行的不精确(例如产生余数的除法)操作越多,结果的累积误差就越大。