[英]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.