为什么以下代码:
Console.WriteLine(String.Format("{0:C0}", 2170/ 20));
产生“109美元”,同时做
Console.WriteLine(Math.Round(2170 / 20));
给我108?
我如何得到2170/20给我109?
答案 0 :(得分:4)
当您除以整数类型的值时,例如2170
和20
,运行时执行整数除法并丢弃(截断)小数。
如果您将其中一个操作数更改为float
,double
或decimal
(例如2170.0 / 20
或2170 / 20m
),它将执行像你期望的那样,一个浮点除法。
因此,您需要将其更改为
Console.WriteLine(Math.Round(2170.0 / 20));
像这样:
Math.Round(2170m / 20, MidpointRounding.AwayFromZero)
答案 1 :(得分:0)
尝试Math.Round(2170.0 / 20.0)