de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 lonewookie
lonewookie
Question

Saya perlu membulatkan float ke dua tempat desimal di Java

Kemungkinan Duplikat: Cara membulatkan angka ke n tempat desimal di Java

< Akhir dari teks yang disisipkan secara otomatis -->

Saya mengalami kesulitan membulatkan sebuah float ke dua tempat desimal. Saya telah mencoba beberapa metode yang saya lihat di sini termasuk hanya menggunakan Math.round(), tetapi tidak peduli apa yang saya lakukan saya tetap mendapatkan angka yang tidak biasa.

Saya memiliki daftar float yang sedang saya proses, yang pertama dalam daftar ditampilkan sebagai 1.2975118E7. Apa yang dimaksud dengan E7?

Ketika saya menggunakan Math.round(f) (f adalah float), saya mendapatkan angka yang sama persis.

Saya tahu saya melakukan sesuatu yang salah, saya hanya tidak yakin apa.

Saya hanya ingin angkanya dalam format x.xx. Angka pertama seharusnya 1.30, dst.

35 2012-06-17T15:09:08+00:00 3
 Community
Community
Pertanyaan edit 23 Mei 2017 в 11:47
Pemrograman
java
android
floating-point
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Solution / Answer
 Alexander
Alexander
17 Juni 2012 в 3:12
2012-06-17T15:12:19+00:00
Lebih
Sumber
Sunting
#16457675

1.2975118E7 adalah notasi ilmiah.

1.2975118E7 = 1.2975118 * 10^7 = 12975118

Juga, Math.round(f) mengembalikan sebuah bilangan bulat. Anda tidak dapat menggunakannya untuk mendapatkan format yang anda inginkan x.xx.

Anda bisa menggunakan String.format.

String s = String.format("%.2f", 1.2975118);
// 1.30
 Alexander
Alexander
Jawaban edit 17 Juni 2012 в 3:23
102
0
 kcoppock
kcoppock
17 Juni 2012 в 3:19
2012-06-17T15:19:02+00:00
Lebih
Sumber
Sunting
#16457676

Jika Anda mencari format mata uang (yang tidak Anda tentukan, tetapi tampaknya itulah yang Anda cari) cobalah kelas NumberFormat. Ini sangat sederhana:

double d = 2.3d;
NumberFormat formatter = NumberFormat.getCurrencyInstance();
String output = formatter.format(d);

Yang akan menghasilkan (tergantung pada lokal):

$2.30

Juga, jika mata uang tidak diperlukan (hanya dua tempat desimal yang tepat) Anda dapat menggunakan ini sebagai gantinya:

NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMinimumFractionDigits(2);
formatter.setMaximumFractionDigits(2);
String output = formatter.format(d);

Yang akan menghasilkan 2.30

 cyrilchampier
cyrilchampier
Jawaban edit 18 April 2014 в 11:46
50
0
 nsfyn55
nsfyn55
17 Juni 2012 в 3:12
2012-06-17T15:12:06+00:00
Lebih
Sumber
Sunting
#16457674

Coba lihat kelas BigDecimal. Ini adalah kelas untuk mata uang dan mendukung pembulatan yang akurat.

-2
0
Related communities 4
Android Studio Indonesia
Android Studio Indonesia
1 778 pengguna
Buka telegram
Programmer JAVA indonesia
Programmer JAVA indonesia
1 119 pengguna
Buka telegram
jvmusergroup
jvmusergroup
351 pengguna
Bismillahirrohmanirohim. Perhatian! Grup ini merupakan ekspansi dari grup Forum Java Programmer Indonesia di Facebook. Silahkan berbagi pengalaman dan masalah seputar Java dan keluarganya. https://t.me/JVMIndonesia Admin : @hendisantika34
Buka telegram
Java Indonesia🇲🇨
Java Indonesia🇲🇨
144 pengguna
Programmer Java Indonesia. Grup ini digunakan untuk bertanya terkait materi belajar Java / fullstack Warning=> -dilarang promosi(izin adm -18+🔞 - berbicara sopan - no spam /boot Mohon ikut aturan grup belum di keluarkan
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 8 jam yang lalu
2
Akshit Mehta
Terdaftar 2 hari yang lalu
3
me you
Terdaftar 6 hari yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi