相关疑难解决方法(0)

我如何将数字(例如:2.12)四舍五入到 JS 中最接近的十分之一(2.1)

我正在尝试这样做,但我发现的只是四舍五入到最接近的整数。我想知道是否有办法用 math.round 来做到这一点,或者是否有不同的解决方案。谢谢!

javascript

7
推荐指数
2
解决办法
9790
查看次数

始终在C#中舍入一个值

我想根据第3个小数点对值进行综合.应始终采用UP值并进行舍入.我使用了Math.Round,但它并没有像我预期的那样产生结果.

场景1

var value1 = 2.526;
var result1 = Math.Round(value1, 2); //Expected: 2.53 //Actual: 2.53
Run Code Online (Sandbox Code Playgroud)

情景2

var value2 = 2.524;
var result2 = Math.Round(value2, 2); //Expected: 2.53 //Actual: 2.52
Run Code Online (Sandbox Code Playgroud)

场景1没问题.正如我预期的那样产生结果.在第二个场景中,我的金额为2.522.我想考虑第三个小数点(在这种情况下是'4')它应该向上舍入.预期结果是2.53

无论小数点是3(小于5还是大于5),它都应该总是向上舍入.

谁能为我提供解决方案?我不认为Math.Round在这里帮助我.

c# double decimal roundup

5
推荐指数
3
解决办法
6352
查看次数

通过数学Round(上下)进行舍入和舍入

我有这样的事情:

double d1 = Math.Round(88.5, 0); // result 88
double d2 = Math.Round(89.5, 0); // result 90
Run Code Online (Sandbox Code Playgroud)

为什么Math.Round()将数字向下舍入,奇数向上舍入?

c# math rounding

5
推荐指数
1
解决办法
276
查看次数

3
推荐指数
1
解决办法
526
查看次数

Math.Round(1.225,2)给出1.23,不应该给1.22

AFAIK .NET的默认圆形选项是偶数,所以Math.Round(1.225,2)应该给1.22,但它给出1.23.

Math.Round(2.225,2) = 2.22 
Math.Round(100.225,2) = 100.22 
Run Code Online (Sandbox Code Playgroud)

我试过的所有值都是最接近的,但只有1.225-1.225回合到1.23-1.23.

.net c# bankers-rounding rounding

3
推荐指数
1
解决办法
253
查看次数

将double转换为int将返回意外结果

我想显示转换doubleint.但我很困惑.这是我的代码.

private void tbxDouble_TextChanged(object sender, EventArgs e)
{
    tbxInt.Text = Convert.ToDouble(tbxDouble.Text).ToString("F0");
    tbxInt2.Text = Math.Round(Convert.ToDouble(tbxDouble.Text),0).ToString();
}
Run Code Online (Sandbox Code Playgroud)

结果为100,5 => 101和100

结果为100,56 => 101和101

结果为100,49 => 100和100

为什么所有结果都不是101?这有什么问题?

c# double int decimal type-conversion

3
推荐指数
1
解决办法
142
查看次数

.NET 4中的Math.Round()行为

可能重复:
在C#中:Math.Round(2.5)结果为2(而不是3)!你在跟我开玩笑吗?
.Net Round Bug

我有一个中间值(number.5),我需要指定如何舍入(上限值或下限值).

我理解的行为Math.RoundMidPointRounding参数,但不解决我的问题:

// To Even
Console.WriteLine(Math.Round(4.4)); // 4
Console.WriteLine(Math.Round(4.5)); // 4
Console.WriteLine(Math.Round(4.6)); // 5
Console.WriteLine(Math.Round(5.5)); // 6

// AwayFromZero
Console.WriteLine(Math.Round(4.4)); // 4
Console.WriteLine(Math.Round(4.5)); // 5
Console.WriteLine(Math.Round(4.6)); // 5
Console.WriteLine(Math.Round(5.5)); // 6

// in one case I need 
Console.WriteLine(Math.Round(4.4)); // 4
Console.WriteLine(Math.Round(4.5)); // 4
Console.WriteLine(Math.Round(4.6)); // 5
Console.WriteLine(Math.Round(5.5)); // 5

// another case I need
Console.WriteLine(Math.Round(4.4)); // 4
Console.WriteLine(Math.Round(4.5)); // 5
Console.WriteLine(Math.Round(4.6)); // 5
Console.WriteLine(Math.Round(5.5)); // 6
Run Code Online (Sandbox Code Playgroud)

c# math rounding .net-4.0

1
推荐指数
2
解决办法
5344
查看次数

在C#中舍入.净

我有一个MVC3 C#.Net网络应用程序.计算的乘积是158*1.75 = 276.5.我希望这个数字可以向上舍入到277.我使用的是Math.Round,但它会向下舍入.我知道我在某个地方见过这个问题.解决方案是什么?

c# rounding

1
推荐指数
1
解决办法
191
查看次数

使用 Math.Round 舍入双精度值

我有一个双精度值:0.314285,我想将其四舍五入到小数点后 5 位。从数学的角度来看,我的预期结果是:0.31429。在我的代码中,我使用带有MidPointRounding.AwayFromZero参数重载的 Math.Round ,结果输出为:0.31428。

有没有另一种方法来实现输出结果为:0.31429??

.net c#

0
推荐指数
1
解决办法
65
查看次数

为什么小数2.5M轮到2?

我必须错过.NET舍入的一些微妙之处.所以我看这个例子:

decimal num = 2.5M;
var result = Math.Round(num);
Run Code Online (Sandbox Code Playgroud)

为什么result = 2?(我本来应该预期3,因为它应该围绕)

.net c# vb.net math

-2
推荐指数
2
解决办法
474
查看次数