Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Penambahan Titik Terapung PHP Menghasilkan Keputusan Yang Tidak Dijangka?

Mengapa Penambahan Titik Terapung PHP Menghasilkan Keputusan Yang Tidak Dijangka?

Susan Sarandon
Lepaskan: 2024-12-17 00:58:25
asal
690 orang telah melayarinya

Why Does PHP Floating-Point Addition Produce Unexpected Results?

Ketepatan Nombor Terapung PHP: Mengapa Keputusan Tidak Dijangka?

Pengendalian nombor titik terapung PHP boleh menghasilkan keputusan yang mengejutkan. Pertimbangkan perkara berikut:

$a = '35';
$b = '-34.99';
echo ($a + $b);
Salin selepas log masuk

Daripada jangkaan 0.01, output ialah 0.009999999999998. Keanehan ini berpunca daripada perbezaan asas antara aritmetik titik terapung dan aritmetik nombor nyata.

Nombor titik terapung, seperti namanya, mewakili nombor menggunakan tatatanda binari dengan ketepatan terhingga. Akibatnya, adalah mustahil untuk mewakili semua nombor dengan tepat menggunakan kaedah ini. Ini boleh membawa kepada ketidaktepatan dan kejutan seperti di atas.

Untuk menangani isu ini, seseorang boleh mempertimbangkan perkara berikut:

  • Gunakan bulat($result, 2) pada keputusan untuk bundarkan kepada 2 tempat perpuluhan.
  • Gunakan integer. Jika berurusan dengan mata wang, simpan $35.00 sebagai 3500 dan $34.99 sebagai 3499, kemudian bahagikan hasilnya dengan 100.

Malangnya, PHP tidak mempunyai jenis data perpuluhan khusus seperti banyak bahasa lain. Ini boleh menghalang ketepatan apabila bekerja dengan pengiraan kewangan atau saintifik.

Atas ialah kandungan terperinci Mengapa Penambahan Titik Terapung PHP Menghasilkan Keputusan Yang Tidak Dijangka?. 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