gpt4 book ai didi

Java:使用 DecimalFormat 格式化 double 和整数,但保留没有小数点分隔符的整数

转载 作者:太空狗 更新时间:2023-10-29 22:50:40 25 4
gpt4 key购买 nike

我正在尝试在 Java 程序中格式化一些数字。这些数字将是 double 和整数。在处理 double 时,我只想保留两位小数,但在处理整数时,我希望程序不影响它们。换句话说:

double - 输入

14.0184849945

double - 输出

14.01

整数 - 输入

13

整数 - 输出

13 (not 13.00)

有没有办法在相同 DecimalFormat 实例中实现它?到目前为止,我的代码如下:

DecimalFormat df = new DecimalFormat("#,###,##0.00");
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
otherSymbols.setDecimalSeparator('.');
otherSymbols.setGroupingSeparator(',');
df.setDecimalFormatSymbols(otherSymbols);

最佳答案

您可以将 minimumFractionDigits 设置为 0。像这样:

public class Test {

public static void main(String[] args) {
System.out.println(format(14.0184849945)); // prints '14.01'
System.out.println(format(13)); // prints '13'
System.out.println(format(3.5)); // prints '3.5'
System.out.println(format(3.138136)); // prints '3.13'
}

public static String format(Number n) {
NumberFormat format = DecimalFormat.getInstance();
format.setRoundingMode(RoundingMode.FLOOR);
format.setMinimumFractionDigits(0);
format.setMaximumFractionDigits(2);
return format.format(n);
}

}

关于Java:使用 DecimalFormat 格式化 double 和整数,但保留没有小数点分隔符的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com