这是小代码来说明我所看到的
float floater = 59.999f;
DecimalFormat df = new DecimalFormat("00.0");
System.out.println(df.format(floater));
打印:
60.0
我要打印
59.9
我需要做什么?
在使用之前添加以下行DecimalFormat
:
df.setRoundingMode(RoundingMode.DOWN);
查看其他舍入模式,看看哪种最适合您。
注意:此方法仅在JDK 1.6或更高版本中有效
0.05返回0.0 0.15返回0.2 0.25返回0.2 0.35返回0.4 0.45返回0.4 为什么会出现这种情况?更重要的是,我如何才能得到正确的值(舍入0.25时为0.3,舍入0.45时为0.5)?
问题内容: 让我们看一下下面的Java语句。 在上述陈述中,除以下情况外,所有其他情况都是显而易见的。 它应该返回但它返回。怎么样? 问题答案: 这是故意行为。从文档中: 四舍五入 DecimalFormat使用半个二进位舍入(请参阅ROUND_HALF_EVEN)进行格式化。 关于ROUND_HALF_EVEN: 舍入模式向“最近的邻居”舍入,除非两个邻居都等距,在这种情况下,向偶数邻居舍入。如
本文向大家介绍java中DecimalFormat四舍五入用法详解,包括了java中DecimalFormat四舍五入用法详解的使用技巧和注意事项,需要的朋友参考一下 DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。它可以支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额
java.text.DecimalFormat类用于根据自定义格式和按区域设置格式化数字。 示例 - 格式编号 在这个例子中,我们根据给定的模式格式化数字。 IOTester.java import java.text.DecimalFormat; public class I18NTester { public static void main(String[] args) {
使用DecimalFormatSymbols类,可以更改默认分隔符号,分组分隔符号等。 以下示例说明了相同的内容。 IOTester.java import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; public class I18NTester { public static void main(Stri
默认情况下,DecimalFormat对象使用JVM的语言环境。 我们可以在使用NumberFormat类创建DecimalFormat对象时更改默认语言环境。 在下面的示例中,我们将对两个不同的区域设置使用相同的模式,您可以发现输出中的差异。 IOTester.java import java.text.DecimalFormat; import java.text.NumberFormat;