簡體   English   中英

Java百分比計算未處理,我不知道為什么

[英]Java percentage calculation not processing and I can't figure out why

以下是一段代碼:

System.out.println("Calc: " + totalMs[0] + " divided by " + totalTestMs + " times 100");
System.out.println("Calc 2: " + totalBits[0] + " divided by " + totalCount[0] + " divided by 1000000");

DecimalFormat df = new DecimalFormat("0.00");

String b1 = "0", b2 = "0", b3 = "0", b4 = "0", b5 = "0", b6 = "0", b7 = "0", b8 = "0", b9 = "0", b10 = "0";
String b1Pct = "0";

if (totalCount[0] > 0) { 
    b1Pct = df.format((totalMs[0]/totalTestMs)*100);
    b1 = df.format((totalBits[0]/totalCount[0])/1000000); 
}

Calc失敗,Calc 2通過。 上面的系統打印顯示的輸出是:

在此處輸入圖片說明

如您所見,這些數字似乎正確傳遞了。 但是,當我系統輸出b1Pct結果時,其狀態為“ 0.0”。 在這種情況下,應為22.73。

我敢肯定這很簡單,但我無法弄清楚。 更令人困惑的是,第二個是正確的!

看來您要對Calc進行整數除法。 當您將兩個整數相除時,您將得到一個整數,其余部分將被丟棄,即:

System.out.println("Integer divide: " + 40/100); //Result is 0

您只需將其中之一強制轉換為浮點數即可,只需添加一個小數即可,即:

System.out.println("Decimal divide: " +  40/100.); //Result is .40
System.out.println("Cast divide: " + 40/((float)100)); //Result is .40

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM