Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengelak Bahagian Integer Tidak Tepat dalam PostgreSQL?

Bagaimanakah Saya Boleh Mengelak Bahagian Integer Tidak Tepat dalam PostgreSQL?

Linda Hamilton
Lepaskan: 2024-12-27 17:46:10
asal
889 orang telah melayarinya

How Can I Avoid Inaccurate Integer Division in PostgreSQL?

Ketidaktepatan Bahagian (/) dalam PostgreSQL

Apabila melakukan pembahagian dalam PostgreSQL, adalah penting untuk mempertimbangkan jenis data yang terlibat untuk memastikan hasil yang tepat . Dalam kes yang diterangkan, di mana matlamatnya adalah untuk menentukan kuantiti perisian yang akan dijual untuk memulihkan kos pembangunan, pembahagian integer boleh membawa kepada hasil yang salah.

Dalam pertanyaan yang diberikan, dev_cost dan sell_cost ialah kedua-dua jenis integer. Pembahagian integer memotong hasil ke arah sifar, bermakna pembahagian 16000 dengan 7500 menghasilkan 2 dan bukannya 3 yang dijangkakan.

Untuk mendapatkan hasil yang tepat, sekurang-kurangnya satu daripada nilai mesti dibuang ke titik terapung jenis seperti apungan atau perpuluhan. Sebagai alternatif, sintaks ::perpuluhan boleh digunakan untuk menukar dev_cost secara eksplisit kepada perpuluhan secara tersirat. Ini memaksa pembahagian menjadi operasi titik terapung, menghasilkan pembahagian yang tidak dipotong.

Pertimbangkan pertanyaan diubah suai berikut:

select dev_cost::decimal / sell_cost from software ;
Salin selepas log masuk

Sebagai alternatif, fungsi ceil() boleh digunakan untuk membundarkan hasil kepada integer terdekat:

select ceil(dev_cost::decimal / sell_cost) from software ;
Salin selepas log masuk

Dengan menggunakan teknik ini, hasil pembahagian yang tepat boleh dicapai, memastikan pengiraan perniagaan berdasarkan pertanyaan pangkalan data adalah kukuh.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Bahagian Integer Tidak Tepat dalam PostgreSQL?. 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