相关疑难解决方法(0)

如何将DecimalFormat的小数分隔符从逗号更改为点/点?

我有一个小的疯狂方法,将BigDecimal值转换为漂亮可读的字符串.

private String formatBigDecimal(BigDecimal bd){
    DecimalFormat df = new DecimalFormat();
    df.setMinimumFractionDigits(3);
    df.setMaximumFractionDigits(3);
    df.setMinimumIntegerDigits(1);
    df.setMaximumIntegerDigits(3);
    df.setGroupingSize(20);
    return df.format(bd);
}
Run Code Online (Sandbox Code Playgroud)

然而,它还产生了一个所谓的分组分隔符",",它使我的所有值都出现如下:

xxx,xxx
Run Code Online (Sandbox Code Playgroud)

我确实需要分隔符是点或点而不是逗号.有没有人知道如何完成这个小壮举?

我已阅读,尤其是这个,现在死,但我无法找到一个方法来完成这件事.我是以错误的方式接近这个吗?这样做有更优雅的方式吗?甚至可能是一个解决不同本地数字表示的解决方案,因为逗号将完全符合欧洲标准.

java android decimal-point bigdecimal decimalformat

192
推荐指数
5
解决办法
24万
查看次数

如何使用Java的DecimalFormat进行"智能"货币格式化?

我想使用Java的DecimalFormat来格式化双打,如下所示:

#1 - 100 -> $100
#2 - 100.5 -> $100.50
#3 - 100.41 -> $100.41
Run Code Online (Sandbox Code Playgroud)

到目前为止我能想出的最好的是:

new DecimalFormat("'$'0.##");
Run Code Online (Sandbox Code Playgroud)

但这不适用于案例#2,而是输出"$ 100.5"

编辑:

很多这些答案只考虑案例#2和#3而没有意识到他们的解决方案会导致#1将100格式化为"$ 100.00"而不仅仅是"$ 100".

java formatting decimalformat

29
推荐指数
3
解决办法
7万
查看次数

如何用cl-format格式化钱(普通lisp格式函数的clojure实现)

我正在尝试cl-format用来格式化钱.我想要(f 12345.555) ;=> "12,345.56".我得到格式字符串的小数,"~$"我得到逗号分隔符"~:D".我如何组合它们?

clojure common-lisp string-formatting

3
推荐指数
1
解决办法
644
查看次数

JavaFx TextField 货币格式过滤器

我确实从用户那里获得了价格,但我想过滤数字并输入,每 3 位数字如 123,123,123。

txtPrice.textProperty().addListener((observable, oldValue, newValue) -> {
   if (!newValue.matches("\\d*")){
       txtPrice.setText(newValue.replaceAll("[^\\d]",""));
   }
});
Run Code Online (Sandbox Code Playgroud)

java javafx textfield

1
推荐指数
1
解决办法
4156
查看次数