gpt4 book ai didi

c# - 被四舍五入咬伤了?

转载 作者:行者123 更新时间:2023-11-30 15:47:31 26 4
gpt4 key购买 nike

为什么会出现下面的代码:

Console.WriteLine(String.Format("{0:C0}", 2170/ 20));

yield “$109”,同时做

Console.WriteLine(Math.Round(2170 / 20));

给我 108?

我怎样才能得到 2170/20 给我 109?

最佳答案

当您除以整数类型的值时,例如 217020,运行时执行整数除法并丢弃(截断)小数。

如果您将其中一个操作数更改为 floatdoubledecimal(例如,2170.0/20,或 2170/20m),它将执行浮点除法,正如您所期望的那样。

因此,您需要将其更改为

Console.WriteLine(Math.Round(2170.0 / 20));

编辑

像这样:

Math.Round(2170m / 20, MidpointRounding.AwayFromZero)

关于c# - 被四舍五入咬伤了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com