DaveTaylor
Poster asal- 6 Nov 2007
- Aberdeenshire, Scotland
- 25 Jan 2010
bantuan? lol
iShater
- 13 Ogos 2002
- Chicagoland
- 25 Jan 2010
stanl8
- 24 Dis 2009
- Manchester, UK
- 25 Jan 2010
pulangan ('' + BMI);
Iaitu, operator '+' akan melakukan penggabungan.
Kedua, saya tidak faham bila penyataan if akan dilaksanakan kerana anda mempunyai penyataan pulangan di atas yang akan sentiasa dilaksanakan D
DaveTaylor
Poster asal- 6 Nov 2007
- Aberdeenshire, Scotland
- 25 Jan 2010
iShater berkata: Bolehkah anda menyiarkan ralat sebenar? Mengapa penyata pulangan anda sebelum kaedah anda berakhir? Klik untuk mengembangkan...
Ralat sebenar adalah dua kali ganda tidak boleh dinyahrujuk.
Cromulent
- 2 Okt 2006
- Tanah Harapan dan Kemuliaan
- 25 Jan 2010
Kedua kaedah anda mengembalikan dua kali ganda namun anda cuba mengembalikan rentetan dalam pernyataan if.. else anda.
Ketiga apabila memanggil kaedah toString() anda perlu menggunakan objek Double daripada jenis primitif. Oleh itu, anda harus mengisytiharkan BMI sebagai Double (java.lang.Double) daripada berganda.
Berikut adalah contoh mudah:
Kod: |_+_|
chown33
Moderator
Ahli staf- 9 Ogos 2009
- Pesawat Abysmal
- 25 Jan 2010
DaveTaylor berkata: Ralat sebenar adalah dua kali ganda tidak boleh dinyahrujuk. Klik untuk mengembangkan...
Pertama, anda tidak boleh melakukan ini:
Kod: |_+_|
kerana BMI diisytiharkan sebagai berganda , jenis primitif. Java tidak melakukan autoboxing dalam situasi ini, seperti yang saya ingat.
Jika BMI diisytiharkan sebagai berganda , kelas pembalut untuk jenis primitif, maka ia mungkin berfungsi...
Kecuali anda tidak boleh melakukan ini:
Kod: |_+_|
kerana Java tidak secara automatik menambah () untuk anda. Jika anda ingin menggunakan kaedah toString pada objek, anda perlu menulisnya sebagai penyeruan kaedah:
Kod: |_+_|
Jika anda tidak menggunakan tutorial atau buku, anda sepatutnya begitu.
lee1210
- 10 Jan 2005
- Dallas, TX
- 25 Jan 2010
-Baca C
cx300
- 12 Sep 2008
- Clermont, FL
- 25 Jan 2010
Kod: |_+_|
chown33
Moderator
Ahli staf- 9 Ogos 2009
- Pesawat Abysmal
- 25 Jan 2010
cx300 berkata: Java saya sedikit berkarat tetapi ini sepatutnya betul...
Kod: |_+_| Klik untuk mengembangkan...
Apabila pengiraan adalah (berat/(jisim * jisim)) tanpa pekali lain, unit ketinggian ialah meter dan unit jisim (berat) ialah kilogram. Jika ketinggian hanya boleh diambil pada meter integer (1, 2, 3), anda menghadapi masalah ketepatan yang serius.
http://en.wikipedia.org/wiki/Body_mass_index
Selain itu, jenis ini tidak akan menghasilkan sebarang nilai pecahan dalam hasil, kerana pengiraan dijalankan sepenuhnya dalam aritmetik integer (iaitu pembahagian pemotongan), maka hasil integer ditukar kepada dua kali ganda. Jika anda mahukan pengiraan berganda dengan kemungkinan bahagian pecahan, sekurang-kurangnya satu operan mestilah daripada jenis berganda.
Saya tidak fikir masalah ini unik untuk Java. Anda akan menghadapi masalah yang sama dalam C, yang mempunyai peraturan yang sama untuk integer dan aritmetik berganda.
Jawatan Popular