gpt4 book ai didi

java - 在 Java 中格式化 Bigdecimal

转载 作者:行者123 更新时间:2023-11-30 02:39:39 24 4
gpt4 key购买 nike

我想根据以下规则格式化 BigDecimal 值:

25 => 25
25,1 => 25,10
25,10 => 25,10
25,12 = > 25,12

我搜索了论坛,但没有找到匹配的问题( hereherehere ),并且我查看了 BigDecimal 的 javadoc和 NumberFormat不了解如何做到这一点。

编辑:今天我做的是:

NumberFormat currencyFormat02 = NumberFormat.getCurrencyInstance(locale);
currencyFormat02.setMinimumFractionDigits(0);
currencyFormat02.setMaximumFractionDigits(2);
currencyFormat02.setGroupingUsed(false);
BigDecimal bd = new BigDecimal("25 or 25,1 or 25,10 or 25,12");
String x =currencyFormat02.format(bd);

x 应按上述方式打印,但没有。

最佳答案

可能不是最有效的,但你可以尝试这样的事情:

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;

class Main {
public static void main(String[] args) {
BigDecimal ex1 = new BigDecimal("25");
BigDecimal ex2 = new BigDecimal("25.1");
BigDecimal ex3 = new BigDecimal("25.10");
BigDecimal ex4 = new BigDecimal("25.12");
printCustomBigDecimalFormat(ex1);
printCustomBigDecimalFormat(ex2);
printCustomBigDecimalFormat(ex3);
printCustomBigDecimalFormat(ex4);
}

public static void printCustomBigDecimalFormat(BigDecimal bd) {
DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.getDefault());
symbols.setDecimalSeparator(',');
DecimalFormat df = new DecimalFormat("##.00", symbols);
if(containsDecimalPoint(bd)) {
System.out.println(df.format(bd));
} else {
System.out.println(bd);
}
}

private static boolean containsDecimalPoint(BigDecimal bd) {
return bd.toString().contains(".");
}
}

输出:

25
25,10
25,10
25,12

尝试一下 here!

关于java - 在 Java 中格式化 Bigdecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42110046/

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