如何只需将类型从int更改为decimal,就可以在数学结果中完全相同的值存在差异



我正在做一些项目,需要做一些数学运算:

decimal X = (Value / 881) * (item.Type ? 130: 130 * 2);

参数";值";例如等于3000。

如果";值";类型为int,则结果为390。。如果";值";类型为decimal,结果为442.67

这怎么可能??

.NET Fiddle

因为十进制值。如果你一步一步地计算你的公式,你会明白这种差异是由于当你使用decimal作为类型时小数点后的值造成的

当你把3000(整数(除以881:

int Value = 3000
//Output is 3. Output is in integer
decimal X = (Value / 881);  //When int is divided by int then result is in int

当你把3000(十进制(除以881:

decimal Value = 3000
//Output is 3.4052213393870601589103291714. Output is in decimal.
decimal X = (Value / 881);  //When decimal is divided by int then result is in decimal

.Net fiddle

我希望.net fiddle能让你更好地了解我的答案

最新更新