Rumah >pembangunan bahagian belakang >masalah PHP >Apakah maksud titik terapung php?

Apakah maksud titik terapung php?

藏色散人
藏色散人asal
2022-01-19 09:25:137195semak imbas

Titik terapung PHP merujuk kepada jenis titik terapung terapung, juga dipanggil terapung nombor titik terapung, nombor ketepatan berganda ganda atau nombor nyata sintaksnya adalah seperti "$a = 1.234; $b = 1.2e3. ;"; float Panjang perkataan titik bergantung pada platform, walaupun biasanya nilai maksimum ialah 1.8e308 dengan ketepatan 14 digit perpuluhan.

Apakah maksud titik terapung php?

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Apakah titik terapung php maksudnya?

Jenis titik terapung terapung

Jenis titik terapung (juga dipanggil terapung nombor titik terapung, nombor ketepatan berganda ganda atau nombor nyata nyata) boleh ditakrifkan dengan mana-mana daripada sintaks berikut :

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
$d = 1_234.567; // 从 PHP 7.4.0 开始支持
?>

Bentuk perwakilan nombor titik terapung (garis bawah tidak disokong sebelum PHP 7.4.0):

LNUM          [0-9]+(_[0-9]+)*
DNUM          ([0-9]*(_[0-9]+)*[\.]{LNUM}) | ({LNUM}[\.][0-9]*(_[0-9]+)*)
EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})

Panjang perkataan nombor titik terapung bergantung pada platform, walaupun nilai maksimum biasa ialah 1.8 e308 dan mempunyai ketepatan 14 digit perpuluhan (format IEEE 64-bit).

Ketepatan nombor titik terapung

Nombor titik terapung mempunyai ketepatan yang terhad. Walaupun ia bergantung kepada sistem, PHP biasanya menggunakan format berganda IEEE 754, jadi ralat relatif maksimum akibat pembundaran ialah 1.11e-16. Operasi matematik bukan asas mungkin memberikan ralat yang lebih besar, dan perambatan ralat semasa melakukan operasi gabungan perlu diambil kira.

Tambahan pula, nombor rasional seperti 0.1 atau 0.7 yang boleh diwakili dengan tepat dalam perpuluhan, tidak kira berapa banyak mantissa yang ada, tidak boleh diwakili dengan tepat oleh binari yang digunakan secara dalaman, dan oleh itu tidak boleh ditukar kepada binari tanpa kehilangan sedikit ketepatan Format. Ini boleh membawa kepada hasil yang mengelirukan: contohnya, floor((0.1 0.7)*10) biasanya akan mengembalikan 7 dan bukannya 8 yang dijangkakan, kerana perwakilan dalaman hasil sebenarnya adalah seperti 7.999999999999991118... .

Jadi, jangan sekali-kali percaya bahawa keputusan nombor titik terapung adalah tepat kepada digit terakhir, dan jangan sekali-kali membandingkan dua nombor titik terapung untuk melihat sama ada ia sama. Jika anda benar-benar memerlukan ketepatan yang lebih tinggi, anda harus menggunakan fungsi matematik ketepatan arbitrari atau fungsi gmp.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah maksud titik terapung php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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