我是java编程的新手。我想用5的倍数将价格四舍五入到最近的2位小数。
例如
"\u20B9"
保持不变。38.80
至38.81
。38.80
至38.82
。38.80
至38.83
。38.85
至38.84
。38.85
保持不变。38.85
至38.86
。38.85
至38.87
。38.85
至38.88
。38.90
至38.89
。38.90
保持不变。我尝试了提供的重复项,但它们只出现在小数点后1位。
例如。 38.90
至38.82
。
这是我的代码:
38.8
我已经在本网站的专家看过其他模型答案,但没有一个真正回答我的问题。设置为2位小数,我正在使用import java.text.DecimalFormat;
public class RoundUp {
public static void main(String[] args){
DecimalFormat df = new DecimalFormat("#.##");
double num = 38.84;
System.out.println(df.format(Math.round(num*10.00)/10.00));
}
}
。我知道,但数字四舍五入,让我们说38.83到38.85和38.87到38.90是我真正想要的。
这是我国正在使用的舍入系统。可以查看here。
**
@Mureinik double rounded =已经回答了这个问题 Math.round(num * 100.0 / 5.0)* 5.0 / 100.0;
**
答案 0 :(得分:1)
我建议你在处理钱时使用BigDecimal而不是double。
然后就像
BigDecimal value = new BigDecimal(38.84);
value = value.setScale(2, BigDecimal.ROUND_HALF_UP)