gpt4 book ai didi

java - 格式,java中double小数点后2位,integer小数点后0位

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:31 32 4
gpt4 key购买 nike

如果它有小数,我正在尝试将其格式化为精确到小数点后 2 位,否则使用 DecimalFormat 将其切断

所以,我想实现下一个结果:

100.123 -> 100.12
100.12 -> 100.12
100.1 -> 100.10
100 -> 100

变体#1

DecimalFormat("#,##0.00")

100.1 -> 100.10
but
100 -> 100.00

变体#2

DecimalFormat("#,##0.##")

100 -> 100
but
100.1 -> 100.1

对我的情况应该选择什么模式有什么想法吗?

最佳答案

我达到的唯一解决方案是使用此处提到的 if 语句:https://stackoverflow.com/a/39268176/6619441

public static boolean isInteger(BigDecimal bigDecimal) {
int intVal = bigDecimal.intValue();
return bigDecimal.compareTo(new BigDecimal(intVal)) == 0;
}

public static String myFormat(BigDecimal bigDecimal) {
String formatPattern = isInteger(bigDecimal) ? "#,##0" : "#,##0.00";
return new DecimalFormat(formatPattern).format(bigDecimal);
}

测试

myFormat(new BigDecimal("100"));   // 100
myFormat(new BigDecimal("100.1")); // 100.10

如果有人知道更优雅的方法,请分享!

关于java - 格式,java中double小数点后2位,integer小数点后0位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39267621/

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