Rumah > Java > javaTutorial > Bagaimana untuk Mengendalikan Pengembangan Perpuluhan Tidak Menamatkan dengan BigDecimal?

Bagaimana untuk Mengendalikan Pengembangan Perpuluhan Tidak Menamatkan dengan BigDecimal?

Mary-Kate Olsen
Lepaskan: 2024-11-24 11:45:14
asal
352 orang telah melayarinya

How to Handle Non-Terminating Decimal Expansions with BigDecimal?

Berurusan dengan Pengembangan Perpuluhan Tidak Penamat dan Perpuluhan Besar

Apabila bekerja dengan objek BigDecimal, adalah penting untuk mengetahui potensi bukan- menamatkan pengembangan perpuluhan. Pertimbangkan kod berikut:

BigDecimal a = new BigDecimal("1.6");
BigDecimal b = new BigDecimal("9.2");
a.divide(b)
Salin selepas log masuk

Kod ini cuba membahagikan dua objek BigDecimal, tetapi sebaliknya menimbulkan pengecualian berikut:

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Salin selepas log masuk

Pengecualian ini dilemparkan kerana hasil bagi tepat bagi suatu dan b mempunyai pengembangan perpuluhan tidak tamat. Secara lalai, operasi BigDecimal adalah tepat, bermakna ia mengembalikan hasil yang tepat walaupun ia mempunyai pengembangan perpuluhan tak terhingga. Walau bagaimanapun, apabila ketepatan ditetapkan kepada 0 (seperti yang ditetapkan secara lalai), mod pembundaran diabaikan dan tiada pembundaran dilakukan.

Untuk membetulkan pengecualian ini, anda perlu menentukan mod pembundaran dan ketepatan. Contohnya:

a.divide(b, 2, RoundingMode.HALF_UP)
Salin selepas log masuk

Dalam kes ini, pembahagian akan dilakukan dengan ketepatan 2 dan hasilnya akan dibundarkan menggunakan mod pembundaran HALF_UP. Ini akan menghasilkan pengembangan perpuluhan terhingga.

Untuk mendapatkan maklumat lanjut tentang mengendalikan pengembangan perpuluhan yang tidak ditamatkan dengan BigDecimal, rujuk dokumentasi Java atau sumber yang berkaitan seperti catatan blog dan tutorial.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Pengembangan Perpuluhan Tidak Menamatkan dengan BigDecimal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan