首页 > 解决方案 > 如何连续传递 DecimalFormat 两个文字字符?

问题描述

我想将数字 1234.5678 格式化为 ($1,234.57)

所以我传入了格式化字符串 '(''$'#,##0.00')'

但这给了我('$ 1,234.57)

我猜这两个撇号正在被更改为文字 ' 和 ' 在 $ 被吃掉之后。

那么如何将字符串 ($ 放入模式中?

标签: javadecimalformat

解决方案


基本上,($并且)不会被视为特殊字符,DecimalFormat因为它们在表达式内部没有意义。

例如,如果您要使用#,那么使用'#'

请参阅 Javadoc

' 用于在前缀或后缀中引用特殊字符,例如,“'#'#”将 123 格式化为“#123”。要自己创建单引号,请连续使用两个:“# o''clock”。

以下作品完美

DecimalFormat decimalFormat = new DecimalFormat("($#,##0.00)");
System.out.println(decimalFormat.format(1234.5678)); // ($1,234.57)

推荐阅读