gpt4 book ai didi

java - 为什么 java.math.RoundingMode 不带有 HALF_ODD 舍入?

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:10 24 4
gpt4 key购买 nike

java.math.RoundingMode带有HALF_EVEN模式,在等距的情况下将数字四舍五入到最近的偶数邻居,但为什么不带有HALF_ODD模式?

在 Java 中实现 HALF_ODD 舍入的最简单方法是什么?

最佳答案

我希望这个link可以帮助你。

提出的解决方案是:

public static int RoundToNearestRoundHalfToOdd(decimal value)
{
// First round half toward positive infinity. Then if the fraction
// part of the original value is 0.5 and the result of rounding is
// even, then subtract one.
var temp = (int)Math.Floor(value + 0.5m);
if (value - Math.Floor(value) == 0.5m && temp % 2 == 0)
temp -= 1;
return temp;
}

它是用 C# 编写的,但我想你可以将其转换为 Java。

为了帮助您完成任务,您可以查看方法 BigDecimal#divideAndRound 的源代码在 Java SDK 中,一切都在其中发生。

关于java - 为什么 java.math.RoundingMode 不带有 HALF_ODD 舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17849573/

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