2015-02-23 180 views
1

我有一個常數是負值,我希望輸出結果爲正值。當我添加%+ f時,它不會執行任何操作,並且輸出仍然出現-15,123.45?printf(「%+ f」,..)仍然顯示負數

public static final double n2 = -15123.456789; 

System.out.printf("%+,.2f\n", n2); 
+2

'System.out.printf( 「%+ ,. 2F \ n」,-N2);' – kjbartel 2015-02-23 02:25:38

+7

Math.abs()是你的朋友。 – zubergu 2015-02-23 02:30:46

回答

0

格式字符串"%+,.2f\n"只定義了必須打印值的格式。 它不會更改實際值。如果您的輸入值爲負值,則輸出字符串將顯示爲負值。這就像,當你使東西加粗時,它不會改變爲另一件事

要將該值轉換爲相反符號( - to +,+ to - ),可以將值乘以-1感謝kjbartel作爲快捷方式。

System.out.printf("%+,.2f\n", -1 * n2); 
// or 
System.out.printf("%+,.2f\n", -n2); 

將值轉換始終是積極的( - 到+,+到+),你可以使用Math.abs感謝zubergu的小費。

System.out.printf("%+,.2f\n", Math.abs(n2));