Dengan perkembangan teknologi komputer yang berterusan, operasi nombor telah menjadi salah satu kandungan paling asas dan penting dalam komputer. Walau bagaimanapun, apabila melakukan operasi bahagi nombor titik terapung, ralat besar mungkin berlaku disebabkan oleh ketepatan penyimpanan komputer nombor titik terapung. Untuk menyelesaikan masalah ini, fungsi fdiv() telah ditambah dalam PHP8 untuk operasi pembahagian yang tepat.
Format sintaks bagi fungsi fdiv() ialah:
fdiv(float $dividend, float $divisor): float
Antaranya, $dividen mewakili dividen, $divisor mewakili pembahagi, dan nilai pulangan adalah hasil operasi bahagi , iaitu $dividen dibahagikan dengan $divisor nilai tepat.
Seterusnya, mari lihat beberapa contoh penggunaan khusus.
Apabila melakukan operasi pembahagian, biasanya kami menggunakan operator bahagian "/" untuk melengkapkannya. Sebagai contoh, jika kita perlu mengira hasil pembahagian 10 dengan 3, kita boleh menggunakan kod berikut:
$result = 10 / 3; echo $result; // 3.3333333333333
Melihat kepada nilai $result, kita akan mendapati bahawa hasilnya ialah 3.333333333333 kepada isu ketepatan apabila komputer menyimpan nombor titik terapung.
Jika anda menggunakan fungsi fdiv() untuk melaksanakan operasi yang sama, kodnya adalah seperti berikut:
$result = fdiv(10, 3); echo $result; // 3.3333333333333
Nampaknya tiada perubahan, tetapi sebenarnya fungsi fdiv() berfungsi operasi yang lebih jitu untuk memastikan mendapat hasil yang lebih tepat.
Apabila berurusan dengan pembahagian titik terapung, anda sering menghadapi beberapa kes yang melampau, seperti pembahagi adalah 0, pembahagi adalah sangat kecil, dsb. Dalam kes ini, operasi bahagian biasa boleh menyebabkan pengecualian program atau keputusan yang salah.
Untuk kes di mana pembahagi ialah 0, pengecualian DivideByZeroError akan dilemparkan dalam PHP, jadi program perlu mengendalikan pengecualian. Contohnya:
try { $result = fdiv(10, 0); } catch (DivideByZeroError $e) { echo "Error: Cannot divide by 0"; }
Bagi kes di mana pembahagi adalah sangat kecil, keputusan yang tidak tepat mungkin diperoleh kerana had ketepatan nombor titik terapung yang disimpan dalam komputer. Dalam kes ini, anda boleh meningkatkan ketepatan pengiraan dengan menetapkan ketepatan. Sebagai contoh, kami menetapkan hasil pengiraan untuk mengekalkan 20 tempat perpuluhan:
ini_set('precision', 20); $result = fdiv(10, 0.0000001); echo $result; // 1.0E+8
Anda boleh melihat bahawa dengan menetapkan ketepatan, kami mendapat hasil pengiraan yang lebih tepat.
Apabila berurusan dengan nombor yang sangat besar, menggunakan operasi bahagi biasa selalunya menghasilkan ralat yang sangat besar. Pada masa ini, anda boleh menggunakan fungsi pengiraan tepat bagi fungsi fdiv() untuk melaksanakan operasi bahagi yang tepat pada nombor yang sangat besar. Sebagai contoh, kita perlu mengira hasil pembahagian 2 kepada kuasa 100 dengan 3:
$dividend = pow(2, 100); $divisor = 3; $result = fdiv($dividend, $divisor); echo $result; // 6.3382530011411E+29
Menggunakan fungsi fdiv(), kita mendapat hasil pengiraan yang lebih tepat.
Ringkasnya, kemunculan fungsi fdiv() menjadikannya lebih mudah dan tepat untuk kita membahagikan nombor titik terapung. Ia berkesan boleh mengelakkan ralat yang disebabkan oleh ketepatan penyimpanan komputer nombor titik terapung dan meningkatkan kecekapan operasi program.
Atas ialah kandungan terperinci Pembahagian tepat menggunakan fungsi fdiv() dalam PHP8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!