2015-11-18 22 views
0

我想將方法​​返回的double打印到小數點後兩位,但由於方法在字符串方法的返回中調用時遇到問題。返回double加到字符串並打印到2個小數位的方法

我曾嘗試使用printf,但出現錯誤。我假設這是因爲不僅有數字。

繼承人的代碼。

public double monthlyPay() 
{ 
    return annualSalary/12; 
} 

public String toString() 
{ 
    return super.toString() + " Monthly Pay = " + monthlyPay(); 
} 

public void print() 
{ 
    System.out.println(toString()); 
} 

我很感激任何幫助。

+0

在類java.text.NumberFormat – Udo

回答

0

如果你正試圖削減monthlyPay()到小數點後2位,你可以去:

double monthPay = (double)Math.round(monthlyPay() * 100d)/100d 

return super.toString() + " Monthly Pay = " + monthPay); 

另外,您可以使用這樣的方法來格式化字符串:

import java.text.DecimalFormat; 

public static String formatNumber(int decimals, double number) { 
    StringBuilder sb = new StringBuilder(decimals + 2); 
    sb.append("#."); 
    for(int i = 0; i < decimals; i++) { 
     sb.append("0"); 
    } 
    return new DecimalFormat(sb.toString()).format(number); 
} 

當然有,也輸出零。一旦這些參數,例如調用它:

String x = formatNumber(3,5.1000); 

你的輸出就會x = "5,100"

+0

採取鎖,你不能調用'的toString()'在原始的,他們不是對象 – JonK

+0

OPS謝謝你。 – Vollmilchbb

+0

謝謝,但我仍然沒有得到它的小數點後2位,它將它舍入到1.1當​​我想要它1.10 – Grimeire