天天看點

java int system.out.println_java – int變量被連接配接而不是在System.out.println()中添加

那是因為操作符的優先權.基本上,您的代碼相當于:

System.out.println(("Total amount : " + total_amount) + tax_amount);

是以,當total_amount為100,tax_amount為20時,最終為:

System.out.println(("Total amount : " + 100) + 20);

被評估為:

System.out.println("Total amount : 100" + 20);

被評估為:

System.out.println("Total amount : 10020");

選項:

>使用括号顯示您希望如何對操作進行分組:

System.out.println("Total amount : " + (total_amount + tax_amount));

>首先執行求和,并将其存儲在新變量中:

int totalIncludingTax = total_amount + tax_amount;

System.out.println("Total amount : " + totalIncludingTax);

作為旁注,我建議:

>遵循Java命名約定,使用camelCase而不是underscores_separating_words,例如: taxAmount而不是tax_amount

>更仔細地命名變量 – 有一個名為total_amount的變量然後列印一些不同的标簽總量是很奇怪的

>在這裡使用靜态方法,因為您實際上并未使用對象中的字段. (這些字段令人困惑,因為你沒有使用它們.)

通過代碼格式化,您最終得到:

public class Test {

public static void main(String[] args) {

calculateTotal(100, 20);

}

private static void calculateTotal(int preTaxTotal, int tax) {

int totalIncludingTax = preTaxTotal + tax;

System.out.println("Total amount: " + totalIncludingTax);

}

}

(你還應該考慮你要為非整數價格做什麼……我建議使用整數,但要使用美分/便士/任意數量,或使用BigDeciml來表示價格.)