JavaRush /Java Blog /Random-ID /Sedikit lebih dalam tentang angka BigDecimal
grishin
Level 27
Харьков

Sedikit lebih dalam tentang angka BigDecimal

Dipublikasikan di grup Random-ID
Akhirnya setelah istirahat 3 bulan, saya kembali mengikuti kursus. Saya istirahat pada awal Januari. Saya kemudian memutuskan untuk beralih mempelajari disiplin ilmu lain, seperti HTML/CSS/Javascript. Seiring berjalannya waktu, saya mulai mempelajari teknologi (servlet dan JSP). Saat itu saya sudah menyelesaikan 24 level dan sedikit stuck di kelas internal - bukan berarti ada yang tidak jelas, hanya saja ilmu yang didapat harus sistematis, karena terlalu banyak yang didapat dalam waktu singkat. dalam mode "berpacu melintasi Eropa". Jadi, sekarang saya memutuskan untuk membaca Horstman volume pertama dengan hati-hati untuk mengkonsolidasikan pengetahuan saya tentang Java Core dan pada saat yang sama menyelesaikan tugas yang tersisa dari level sebelumnya, dan kemudian melanjutkan ke level-level tersebut. Saya mulai dengan soal bonus dari level 15 tentang faktorial. Setelah mengatasinya, saya memutuskan untuk melihat lebih dalam pada kelas BigDecimal. Saya tidak menemukan artikel yang sangat populer di internet, jadi saya melihat dokumentasinya dan paragraf pertama di dalamnya langsung membuat saya berpikir, entah kenapa tidak semua isinya jelas. Saya memutuskan untuk mengungkap kebenaran yang sebenarnya, dan agar pekerjaan saya tidak sia-sia, saya memformat semuanya dalam bentuk artikel dan sekarang saya mempostingnya ke komunitas untuk bertukar pendapat, dan mungkin itu akan terjadi. membantu seseorang. Jadi saya mengambil paragraf pertama dan memecahnya menjadi kalimat. Hanya ada 5 kalimat di dalamnya. Kalimat nomor 3 dan 4 digarisbawahi dan dipindahkan ke akhir paragraf (mengapa saya melakukan ini - baca terus). Dan terjemahannya dibuat sesuai dengan urutan yang diubah ini. Paragraf pertama asli
  1. Angka desimal bertanda presisi arbitrer yang tidak dapat diubah.
  2. BigDecimal terdiri dari nilai bilangan bulat presisi sembarang yang tidak berskala dan skala bilangan bulat 32-bit.
  3. Jika nol atau positif, skalanya adalah jumlah digit di sebelah kanan koma desimal.
  4. Jika negatif, nilai bilangan yang tidak berskala dikalikan sepuluh pangkat negasi skala.
  5. Oleh karena itu, nilai angka yang diwakili oleh BigDecimal adalah ( unscaledValue × 10 -scale ).
Asli dengan susunan kalimat yang disusun ulang
  1. Angka desimal bertanda presisi arbitrer yang tidak dapat diubah.
  2. BigDecimal terdiri dari nilai bilangan bulat presisi sembarang yang tidak berskala dan skala bilangan bulat 32-bit.
  3. Oleh karena itu, nilai angka yang diwakili oleh BigDecimal adalah ( unscaledValue × 10 -scale ).
  4. Jika nol atau positif, skalanya adalah jumlah digit di sebelah kanan koma desimal.
  5. Jika negatif, nilai bilangan yang tidak berskala dikalikan sepuluh pangkat negasi skala.
Terjemahan yang diperluas (setiap poin dalam terjemahan berhubungan dengan satu poin dalam aslinya)
  1. Ini adalah bilangan desimal pecahan 1 yang tidak dapat diubah dengan tanda 2 , dengan panjang sembarang 34 .
  2. Nomor BigDecimal ditentukan oleh dua parameter. Yang pertama, yang disebut. nilai yang tidak berskala adalah bilangan bulat yang panjangnya tidak terbatas. Hanya mengetahui parameter ini, seseorang tidak dapat mengatakan apa pun tentang nilai sebenarnya dari bilangan BigDecimal. Untuk melakukan ini, Anda harus mengetahui parameter kedua - bilangan bulat 32-bit yang disebut skala.
  3. Kemudian nilai angka BigDecimal tersebut dapat dihitung dengan menggunakan rumus berikut: unscaledValue × 10 -scale
  4. Jika BigDecimal bernilai nol atau positif, skalanya adalah jumlah digit setelah koma desimal.
  5. Jika BigDecimal negatif, nilai yang tidak berskala dikalikan dengan 10 yang dipangkatkan sama dengan skala dengan tanda minus.
Catatan Terjemahan
1. Pecahan, karena “presisi sewenang-wenang” mencakup, antara lain,
   bahwa ini adalah bilangan eksak, dan bilangan eksak harus memiliki koma desimal,
   dengan kata lain - pecahan.
2. Yaitu bisa positif dan negatif.
3. Panjang sewenang-wenang, karena "presisi sewenang-wenang" juga berarti
   "Jumlah digit yang berubah-ubah."
4. Faktanya, bilangan Desimal Besar adalah bilangan real. Tapi menginstal
   pengaturan yang berbeda, Anda dapat menggunakannya tidak hanya dalam perhitungan ilmiah,
   dan juga di bidang keuangan.
Jadi, kalimat yang digarisbawahi adalah faktor utama yang membingungkan saya - sebenarnya saya akan menghapusnya dari teks, karena sebenarnya mereka tentang hal yang sama, dan selain itu, mereka hampir sama dengan yang dikatakan dalam kalimat nomor 5. Itu. tiga kalimat berturut-turut hanya mengatakan bahwa nilai yang tidak berskala dikalikan dengan 10 yang dipangkatkan sama dengan skala dengan tanda minus. Hal ini membingungkan saat pertama kali membacanya, karena ketika membaca kalimat nomor 3, Anda memahami bahwa karena ada if, berarti di sini akan ada satu hal, dan di kalimat berikutnya ada hal lain. Tapi tidak, kedua kalimat tersebut mengatakan hal yang sama, hanya dengan kata-kata yang berbeda. Nah, kalimat ketiga (terakhir di paragraf) berturut-turut tentang hal yang sama mungkin seperti tembakan kendali. Tidak jelas mengapa teks tersebut disusun sedemikian membingungkan, karena rumus unscaledValue × 10 -scale dari kalimat terakhir memberikan definisi bilangan besar sejelas, sejelas dan sekomprehensif mungkin.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION