[英]String format negative number minus sign (no parantheses) in java or groovy
我已經使用String.format('$%(,. 2f',-125.433)將字符串輸出為$(125.43)。
在String.format('X',-125.43)中應該是X以輸出為-$ 125.43即X. 前面加減號?
或者,我該如何做呢?
或者您可以使用java.text.DecimalFormat
DecimalFormat format = new DecimalFormat("$#,###0.000;$-#,###0.000");
String formatted = format.format(-125.433);
System.out.println(formatted); // prints $-125.433
或者,您可以堅持使用@biplavo在下面的注釋中提到的字符串格式。
String.format("$%,.3f", -125.433)
我對Groovy不熟悉,因此我不會嘗試提供該解決方案。 但是,我可以肯定地說,這是String.format
並不是特別有用的情況。 我只用?:
像這樣:
public static String formatMoney(double d){
return d>=0?"$"+d:"-$"+(-d);
}
當然可以內聯; 您也可以在兩種情況下都用基本格式設置替換d
。
Groovy的!
String format(BigDecimal num = 0.0) {
num = ( num ?: 0.0 ).setScale( 2, BigDecimal.ROUND_HALF_UP )
num >= 0 ? /$($num)/ : /-$${num.abs()}/
}
assert format(123.433 ) == /$(123.43)/
assert format(-123.433 ) == /-$123.43/
assert format(1 ) == /$(1.00)/
assert format(0 ) == /$(0.00)/
assert format(111 ) == /$(111.00)/
assert format(-101 ) == /-$101.00/
assert format(-1123.435) == /-$1123.44/
assert format(1123.435 ) == /$(1123.44)/
assert format(null ) == /$(0.00)/
assert format( ) == /$(0.00)/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.