Pembahagian tepat menggunakan fungsi fdiv() dalam PHP8

WBOY
Lepaskan: 2023-05-16 19:22:01
asal
1223 orang telah melayarinya

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
Salin selepas log masuk

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.

  1. Operasi pembahagian biasa

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
Salin selepas log masuk

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
Salin selepas log masuk

Nampaknya tiada perubahan, tetapi sebenarnya fungsi fdiv() berfungsi operasi yang lebih jitu untuk memastikan mendapat hasil yang lebih tepat.

  1. Mengendalikan kes sempadan nombor titik terapung

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";
}
Salin selepas log masuk

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
Salin selepas log masuk

Anda boleh melihat bahawa dengan menetapkan ketepatan, kami mendapat hasil pengiraan yang lebih tepat.

  1. Operasi bahagian untuk mengendalikan nombor yang sangat besar

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
Salin selepas log masuk

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!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!