DaveTaylor
Áp phích gốc- Ngày 6 tháng 11 năm 2007
- Aberdeenshire, Scotland
- Ngày 25 tháng 1 năm 2010
public double calcBMI() { double BMI; BMI = weight / (height * height); return BMI; if (BMI >=30) { return BMI.toString + 'Obese'; } else if (BMI >=25) { return BMI.toString + 'Overweight'; } else if (BMI >=18.5) { return BMI.toString + 'Normal Weight'; } else { return BMI.toString + 'Underweight'; } }
Cứu giúp? cười lớn
iShater
- 13 tháng 8, 2002
- Chicagoland
- Ngày 25 tháng 1 năm 2010
stanl8
- Ngày 24 tháng 12 năm 2009
- Manchester, Vương quốc Anh
- Ngày 25 tháng 1 năm 2010
return ('' + BMI);
Tức là toán tử '+' sẽ thực hiện phép nối.
Thứ hai, tôi không hiểu khi nào những câu lệnh if đó sẽ thực thi vì bạn có câu lệnh return ở trên sẽ luôn thực thi NS
DaveTaylor
Áp phích gốc- Ngày 6 tháng 11 năm 2007
- Aberdeenshire, Scotland
- Ngày 25 tháng 1 năm 2010
iShater đã nói: Bạn có thể đăng lỗi thực tế không? Tại sao câu lệnh trả về của bạn lại nằm trước khi kết thúc phương thức của bạn? Bấm để mở rộng...
Lỗi thực tế là gấp đôi không thể được tham chiếu.
Căng mọng
- Ngày 2 tháng 10 năm 2006
- Vùng đất của Hy vọng và Vinh quang
- Ngày 25 tháng 1 năm 2010
Thứ hai, phương thức của bạn trả về một giá trị kép nhưng bạn đang cố gắng trả về một chuỗi trong câu lệnh if .. else của mình.
Thứ ba, khi gọi phương thức toString (), bạn cần sử dụng đối tượng Double thay vì kiểu nguyên thủy. Vì vậy, bạn nên khai báo BMI là Double (java.lang.Double) hơn là gấp đôi.
Đây là một ví dụ đơn giản:
Mã:
public class Main { public static void main(String[] args) { Double test; test = 0.843; String test_string = test.toString(); System.out.println(test_string); System.out.println(test); } }
chown33
Người điều hành
Thành viên đội ngũ nhân viên- Ngày 9 tháng 8 năm 2009
- Mặt phẳng Abysmal
- Ngày 25 tháng 1 năm 2010
DaveTaylor cho biết: Lỗi thực tế là gấp đôi không thể được tham chiếu. Bấm để mở rộng...
Đầu tiên, bạn không thể làm điều này:
Mã:
... BMI.toString ...
bởi vì BMI được khai báo là kép , kiểu nguyên thủy. Java không thực hiện autoboxing trong trường hợp này, như tôi nhớ lại.
Nếu BMI được khai báo là Kép , lớp wrapper cho kiểu nguyên thủy, sau đó nó có thể hoạt động ...
Ngoại trừ việc bạn không thể làm điều này:
Mã:
... someObject.someMethod ...
bởi vì Java không tự động thêm () cho bạn. Nếu bạn muốn gọi phương thức toString trên một đối tượng, bạn phải viết nó dưới dạng lời gọi phương thức:
Mã:
... anyObject.toString() ...
Nếu bạn không sử dụng một hướng dẫn hoặc một cuốn sách, bạn thực sự nên làm như vậy.
lee1210
- Ngày 10 tháng 1 năm 2005
- Dallas, TX
- Ngày 25 tháng 1 năm 2010
-Đọc NS
cx300
- Ngày 12 tháng 9 năm 2008
- Clermont, FL
- Ngày 25 tháng 1 năm 2010
Mã:
public String calcBMI(int height, int weight) { double BMI; BMI = (weight / (height * height)); String str = ; if (BMI >=30) { str = (Double.toString(BMI) + Obese); return str; } else if (BMI >=25) { str = (Double.toString(BMI) + Overweight); return str; } else if (BMI >=18.5) { str = (Double.toString(BMI) + Normal Weight); return str; } else { str = (Double.toString(BMI) + Underweight); return str; } }
chown33
Người điều hành
Thành viên đội ngũ nhân viên- Ngày 9 tháng 8 năm 2009
- Mặt phẳng Abysmal
- Ngày 25 tháng 1 năm 2010
cx300 đã nói: java của tôi là một chút gỉ nhưng điều này phải được ...
Mã:public String calcBMI(int height, int weight) { double BMI; BMI = (weight / (height * height));
Bấm để mở rộng...
Khi phép tính là (trọng lượng / (khối lượng * khối lượng)) mà không có hệ số nào khác, thì đơn vị chiều cao là mét và đơn vị khối lượng (trọng lượng) là kilôgam. Nếu chiều cao chỉ có thể tính theo số nguyên mét (1, 2, 3), bạn đang gặp vấn đề nghiêm trọng về độ chính xác.
http://en.wikipedia.org/wiki/Body_mass_index
Ngoài ra, các kiểu này sẽ không bao giờ tạo ra bất kỳ giá trị phân số nào trong kết quả, vì phép tính được thực hiện hoàn toàn bằng số học số nguyên (tức là phép chia cắt ngắn), sau đó kết quả số nguyên được chuyển đổi thành nhân đôi. Nếu bạn muốn một phép tính kép với khả năng là một phần phân số, thì ít nhất một toán hạng phải thuộc loại double.
Tôi không nghĩ vấn đề này là duy nhất đối với Java. Bạn sẽ gặp các vấn đề tương tự trong C, có các quy tắc tương tự cho số nguyên và số học kép.
Bài ViếT Phổ BiếN