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

Bagaimana untuk Mengendalikan Pengembangan Perpuluhan Tidak Menamatkan dengan BigDecimal?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-24 11:45:14305semak imbas

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)

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

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

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)

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!

Kenyataan:
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 sebelumnya:Kilang MudahArtikel seterusnya:Kilang Mudah