Bahagian ( / ) Salah mengira dalam PostgreSQL
Anda menghadapi isu pembahagian dalam PostgreSQL di mana pembahagian integer menghasilkan jawapan yang tidak tepat. Mari kita mendalami latar belakang dan sediakan penyelesaian yang menangani masalah itu.
Memahami Pembahagian Integer
Bahagian integer, dilambangkan dengan "/", memotong hasil bahagi ke arah sifar. Ini bermakna apabila membahagikan dua integer, hasilnya dibundarkan ke bawah kepada nombor bulat terdekat.
Dalam contoh yang diberikan, "kos_dev" dan "kos_jual" ialah kedua-dua integer. Oleh itu, pertanyaan "select dev_cost / sell_cost" mengembalikan 2, iaitu bersamaan integer 16000 dibahagikan dengan 7500. Walau bagaimanapun, anda memerlukan kuantiti perisian untuk memulihkan dev_cost, iaitu 3.
Menyelesaikan Isu Pengiraan
Untuk mendapatkan yang tepat nilai, kita perlu memastikan bahawa sekurang-kurangnya satu operan dalam pembahagian ialah titik terapung atau nilai perpuluhan. Ini menghalang pemangkasan dan menghasilkan hasil bahagi pecahan.
Satu penyelesaian ialah menghantar salah satu lajur kepada perpuluhan menggunakan pengendali "CAST":
select cast(dev_cost as decimal) / sell_cost from software ;
Alternatif lain ialah menggunakan Sintaks "::decimal" untuk menghantar lajur dev_cost:
select dev_cost::decimal / sell_cost from software ;
Kedua-dua pendekatan ini akan mengembalikan hasil titik terapung, mewakili kuantiti tepat perisian yang diperlukan.
Membundar Hingga Integer Terdekat
Jika anda ingin membundarkan hasil kepada integer terdekat, mewakili kuantiti minimum perisian untuk memulihkan dev_cost, anda boleh menggunakan fungsi "CEIL":
select ceil(dev_cost::decimal / sell_cost) from software ;
Ini akan membundarkan hasil perpuluhan kepada nombor bulat seterusnya, memastikan perisian yang mencukupi dijual untuk menampung kos pembangunan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Keputusan Pembahagian Integer dengan Betul dalam PostgreSQL untuk Mengelakkan Pemangkasan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!