我正在做一些项目,需要做一些数学运算:
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能让你更好地了解我的答案