Java : Rounding a decimal value to HALF_EVEN

标签 java math decimal rounding bigdecimal

我一直在尝试编写一个java代码来将值舍入到以下要求。

如果 x=63.88 => roundedValue= 64.00;

如果 x=63.50 => roundedValue= 64.00

如果 x=63.32 => roundedValue= 63.32

我尝试了不同的舍入模式,如 CEILING、DOWN、FLOOR、HALFDOWN。 我也尝试过 Math.round();

但是我无法获得预期的输出。 我的输入是一个字符串,输出也是一个字符串。

请在下面找到我尝试过的代码片段

BigDecimal value1 = new BigDecimal(input);
value1=value1.setScale(2, RoundingMode.HALF_EVEN);
//float rounded=Math.round(amount);

String finalValue=String.valueOf(value1);

我无法获得所需的输出。请告诉我如何实现这一目标?

ps:我应该考虑使用 float 还是 BigDecimal?

最佳答案

if(x%1 >= .5)
  { x = Math.round(x) }
else //do nothing

这似乎会给你想要的输出。因此,如果您确实愿意,您可以重写或创建自己的方法来调用舍入

关于Java : Rounding a decimal value to HALF_EVEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30459495/

相关文章:

c - 从数组打印路径?

逗号分隔小数的 Javascript 正则表达式

c++ - 如何将一个非常大的二进制数转换为十进制数?

java - 标签位于其他标签的属性内

java - 如何在我的 Web 应用程序中实现 REST。我想为我的网站制作一个休息 API?

java - 如何在 Firebase 中检查和比较特定子值

java - 将字符串插入PreparedStatement

python - Python 上的 Bolzano 算法

javascript - JQuery获取子元素的最高高度并放入父元素

c# - MVC linq to sql 求和