簡體   English   中英

浮動類型。 而且,

[英]float type with . and ,

我編寫了這段代碼:對於每一行,它應該采用權重為0.2,0.4和0.4的這些數字的加權平均值,並且應該在標准輸出的單獨行上打印出平均值。 例如,對於下面的輸入

45.00 67.00 98.00
89.00 23.00 89.00

它應該產生

75.00
62.60

它在我寫的時候工作,例如45,6,但是當我寫45.6時它沒有。 這是我的代碼:

import java.util.Scanner;

public class paket {
   public static void main (String [] args){
       Scanner input=new Scanner(System.in);
       float num1,num2,num3,result;

       while(input.hasNext()){

            num1=input.nextFloat();
            num2=input.nextFloat();
            num3=input.nextFloat();

            result= (float) (num1*0.2+num2*0.4+num3*0.4);

            System.out.println("Result is  " +result);
       }
   }
} 

在解析數字之前更改您的語言環境:

Locale.setDefault(new Locale("en", "US"));

掃描程序依賴於區域設置來決定如何解釋其輸入。 正如其他評論所指出的那樣,你運​​行的系統假定','是小數點,而不是'。'

您可以更改掃描儀使用的“輸入”區域設置

input.useLocale(Locale.US);

讓它將浮動解釋為使用'。' 小數點。

您可以將其設置回系統的默認值

input.reset();

解析時應該使用語言環境,這樣就可以同時支持。 並且,取決於用戶選擇的內容:

NumberFormat format = NumberFormat.getInstance(Locale.getDefault());      
Number number = format.parse("1,234");   
double d = number.doubleValue();

暫無
暫無

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

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