Code chạy trên eclipse bị lỗi

Mình mới học java và gặp phải lỗi này trên eclipse…ai có thể cho mình cách giải quyết được không ạ

// code cua minh day a:

import java.lang.Math;
import java.util.Scanner;

public class BaiToanLaiSuat {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double loanamount;
		double monthlyinterestRate;
		double year;
		double monthlyPayments;
		double d,b;
		
		 System.out.println("So Tien Vay: ");
		 Scanner scanner = new Scanner(System.in);
		 loanamount = scanner.nextDouble();
	        System.out.println("Lai Theo Thang: ");
	        monthlyinterestRate = scanner.nextDouble();
	        System.out.println("So Nam: ");
	        year = scanner.nextDouble();
	        d=1+monthlyinterestRate;
	        b=1-1/Math.pow(d,year*12);
	        
	        monthlyPayments = loanamount*monthlyinterestRate/b ;
	        System.out.println("So Tien Phai Tra: " +monthlyPayments); 
	      

}}

đây là lỗi ạ…mình viết số nguyên thì chương trình vẫn chạy nhưng sang số thực thì lại lỗi

So Tien Vay: 
50000
Lai Theo Thang: 
0.15
Exception in thread "main" java.util.InputMismatchException
	at java.base/java.util.Scanner.throwFor(Scanner.java:939)
	at java.base/java.util.Scanner.next(Scanner.java:1594)
	at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
	at BaiToanLaiSuat.main(BaiToanLaiSuat.java:18)

Lỗi gì vậy bạn? Bạn vui lòng chép lỗi lên đây luôn nhé!

đây ạ, mình mới truy cập trang web nên chưa tìm hiểu hết hiệu năng,
còn dưới đây là lỗi ạ: mình nhập số nguyên vẫn chạy bình thường nhưng sang số thực thì lại lỗi

So Tien Vay:
20000
Lai Theo Thang:
0.5
Exception in thread “main” java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at BaiToanLaiSuat.main(BaiToanLaiSuat.java:18)

Máy tính bạn đang thiết lập khu vực (hoặc ngôn ngữ, kiểu số/tiền tệ) là Việt Nam phải không?
Ở cách viết số của tiếng Việt, dấu ngăn cách thập phân là dấu phẩy (,), không giống với dấu chấm (.) ở Âu-Mĩ.

100.000.000,567 <= VN
100,000,000.567 <= US

Giải pháp:

  1. Bạn dùng dấu phẩy để nhập số thập phân. Vd: 1,5.
  2. Bạn thiết lập Scanner sang khu vực cố định bằng phương thức useLocale.
    Scanner sc = new Scanner(System.in).useLocale(Locale.US); // US
    Scanner sc = new Scanner(System.in).useLocale(new Locale.Builder().setLanguage("vi").build()); // Vietnam, chưa kiểm chứng.
    
2 Likes

mình đã sửa được lỗi rồi ạ,
cám ơn bạn rất nhiều ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?