Code làm tròn điểm

Hiện tại em đang viết thử 1 code trên java cho phép 1 người nhập 1 số điểm bất kì r tự động nó sẽ được làm tròn theo qui tắc làm tròn điểm thi của bộ, ý tưởng của em là em sẽ cho nhập số điểm đó dưới dạng chuỗi, sau đó split theo dấu chấm thành 2 phần: phần nguyên và phần thập phân để xử lý riêng như thế này: package xuxu;

import java.util.Scanner;

public class LamTron {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("Mời bạn nhập điểm : ");
		String s=sc.nextLine();
		String [] ss = new String[2];
		ss=s.split(".");
		double n = Double.parseDouble(ss[1]);
		double m = Double.parseDouble(ss[2]);
		double p = n+(m*0.01);
		if(p>=(n-1+0.88)&&p<=(n+0.12)) {
			p=n;
		}else if(p>=(n+0.13)&&p<=(n+0.24)) {
			p=n+0.25;
		}else if(p>=(n+0.26)&&p<=(n+0.37)) {
			p=n+0.25;
		}else if(p>=(n+0.38)&&p<=(n+0.49)) {
			p=n+0.5;
		}else if(p>=(n+0.51)&&p<=(n+0.62)) {
			p=n+0.5;
		}else if(p>=(n+0.63)&&p<=(n+0.74)) {
			p=n+0.75;
		}else if(p>=(n+0.76)&&p<=(n+0.87)) {
			p=n+0.75;
		}else if(p>=(n+0.88)&&p<=(n+0.99)) {
			p=n+1;
		}
		System.out.println("Điểm của bạn sau khi được làm tròn là : " + p);
			

	}

}

Nhưng tiếc thay nó báo lỗi có bug ngay 2 dòng parse, và bây giờ em cũng không biết fix bug như thế nào . Mong mọi người giúp em, em cảm ơn nhiều quy tắc

Index của mảng bắt đầu từ 0 nhé.

double n = Double.parseDouble(ss[0]);
double m = Double.parseDouble(ss[1]);
1 Like

Nó vẫn không run được anh ơi, báo bug ngay cái double n

Bạn sửa lại chỗ này.

String [] ss =s.split("\\.");

Do hàm split của java có tham số là 1 regex nên cần phải dùng "\\.".

3 Likes

Ban Duc Khan đúng rồi đấy. Để hiểu them về Regex có thể tham khảo thêm ở đây bạn nhé
http://o7planning.org/vi/10175/huong-dan-su-dung-bieu-thuc-chinh-quy-trong-java

2 Likes

Em run code được rồi, cảm ơn anh Duc Khan vs Le Hoang Quan nhiều lắm ạ !

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