【发布时间】:2015-05-26 13:07:20
【问题描述】:
我一直在尝试编写一个 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();
但我无法获得预期的输出。 我的输入是一个字符串,输出是一个字符串。
请在下面找到我试过的代码sn-p
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??
【问题讨论】:
-
如果 x=63.32 => roundedValue= 63.32 ????
-
@SoumitriPattnaik - 是的
-
您的规范没有意义,因为您根本没有四舍五入 63.32。如果不应用某种规则,我们将无能为力。
-
你的意思是这样的:如果 x 向上取整,则向上取整,否则什么也不做?
标签: java math decimal rounding bigdecimal