Java-将小数点后的任何内容四舍五入*而不仅仅是%.2f*

Java-将小数点后的任何内容四舍五入*而不仅仅是%.2f*,java,printf,decimal,Java,Printf,Decimal,正如高层所说。我被一个相当简单的问题困住了,但似乎我被困住了 例如: x=3.141 当我使用printf时(“x是:%.2f”,x) 它吐出:X是3.14 为了计算州税,任何超过一美分的东西都需要四舍五入,所以3.141应该是3.15。是否有一个简单的printf我可以修改或一个额外的标签我可以添加?或者我需要绕一圈来计算额外的位吗?这是一个可能的解决方案: public static float roundUp(float num, int positions) { int tmp

正如高层所说。我被一个相当简单的问题困住了,但似乎我被困住了

例如: x=3.141

当我使用printf时(“x是:%.2f”,x) 它吐出:
X是3.14


为了计算州税,任何超过一美分的东西都需要四舍五入,所以3.141应该是3.15。是否有一个简单的printf我可以修改或一个额外的标签我可以添加?或者我需要绕一圈来计算额外的位吗?

这是一个可能的解决方案:

public static float roundUp(float num, int positions) {
    int tmp = ((int)(num*Math.pow(10, positions)));
    tmp = tmp + 10 - tmp%10;
    return ((float)(tmp/Math.pow(10, positions)));
}
你可以打电话得到你想要的

roundUp(num, 3);
或者,如果您想要一种不太通用的方法,也可以使用:

public static float roundUp(float num) {
    int tmp = ((int)(num*1000.0f));
    tmp = tmp + 10 - tmp%10;
    return ((float)(tmp/1000.0f));
}

这是一个可能的解决方案:

public static float roundUp(float num, int positions) {
    int tmp = ((int)(num*Math.pow(10, positions)));
    tmp = tmp + 10 - tmp%10;
    return ((float)(tmp/Math.pow(10, positions)));
}
你可以打电话得到你想要的

roundUp(num, 3);
或者,如果您想要一种不太通用的方法,也可以使用:

public static float roundUp(float num) {
    int tmp = ((int)(num*1000.0f));
    tmp = tmp + 10 - tmp%10;
    return ((float)(tmp/1000.0f));
}

最简单的方法是在数字上加0.005


PS:请确保严格按照BigDecimal计算所有内容。不建议使用double表示金钱。

最简单的方法是在数字上加0.005

Math.ceil(x * 100) * 0.01
PS:请确保严格按照BigDecimal计算所有内容。不建议使用double for money

Math.ceil(x * 100) * 0.01
避免神奇的四舍五入数字(是否需要添加0.9、0.99或0.999等)


避免神奇的四舍五入数字(是否需要添加0.9、0.99或0.999等)

使用
printf
,而不是使用
DecimalFormat
四舍五入模式。天花板

DecimalFormat df = new DecimalFormat("#.##");
df.setRoundingMode(RoundingMode.CEILING);
String rounded = df.format(x)
System.out.printf("x is: %s", rounded);

不要使用
printf
,而是使用
DecimalFormat
RoundingMode。天花板

DecimalFormat df = new DecimalFormat("#.##");
df.setRoundingMode(RoundingMode.CEILING);
String rounded = df.format(x)
System.out.printf("x is: %s", rounded);

可能的重复我想如果你能算出一个具体的小数点限制,那就是重复。但不同的需求并不完全相同。可能的重复我想如果你能算出一个具体的小数点限制,它将是重复的。但不同的需求并不完全相同。简单问题的简单解决方案。谢谢你!!如果税正好是3.00,这不会导致税显示为3.01吗?简单问题的简单解决方案。谢谢你!!如果税正好是3.00,这不会导致税显示为3.01吗?