gpt4 book ai didi

c# - Math.Round 圆我

转载 作者:行者123 更新时间:2023-11-30 18:52:02 26 4
gpt4 key购买 nike

我了解 .NET 是否使用银行四舍五入将 2.5 舍入为 2。但是,这怎么可能:

decimal point;
point =51 * 70 / 100;
Math.Round(point,0, MidPointRounding.AwayFromZero);

四舍五入到 35?

即使是奇数,我怎样才能将所有 .5 舍入到大整数?

最佳答案

代码段中的第二行已经为您提供了一个整数结果。

51、70、100 是 int 类型,因此选择整数乘法和除法运算符。整数乘法或除法的结果始终再次为整数类型,并且在对整数使用 / 进行除法时,可能的小数位会被截断。

语句 point = 51 * 70/100; 等同于

int tmp = 51 * 70;         // result is 3570
tmp = tmp / 100; // result is 35 (!!!)
point = (decimal)tmp; // point is 35m;

解决方案是更改您的代码,使其使用decimal 算术:

point = 51m * 70m / 100m;  // point is 35.7m

实际上,一个操作数的类型是decimal就足够了。这可以通过使用后缀 m(用于货币)或使用类型转换来实现。以下示例也将提供所需的结果:

point = (decimal)51 * 70 / 100;

关于c# - Math.Round 圆我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4085931/

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