Saya memiliki kode ini
$vad = 1.1;
print gettype($vad);
var_dump($vad);
ini akan menghasilkan:
double
float(1.1)
Jadi double atau float di php?
Tidak ada perbedaan dalam PHP. float
, double
atau real
tipe data yang sama.
Pada tingkat C, semuanya disimpan sebagai file double
.
Ukuran sebenarnya masih bergantung pada platform.
Lihat manual untuk lebih jelasnya:
http://www.php.net/manual/en/language.types.float.php
function some( float $num){}
, ketika saya menggunakannyasome(17.23)
akan muncul kesalahan fatal some () harus berupa contoh float, double given,real
di php sejauh ini.is_real
fungsi, dengan alias dariis_float
...; )Untuk PHP, keduanya sama. http://www.php.net/manual/en/language.types.float.php :
Bagian yang membingungkan adalah mengapa gettype (yang seharusnya tidak Anda gunakan) mengembalikan "double" daripada "float". Jawabannya adalah http://de2.php.net/manual/en/function.gettype.php :
sumber
Pada PHP 7.0.6 di Windows, membandingkan perintah ini tanpa xdebug:
dan dengan xdebug:
Perhatikan bahwa ini hanya mengubah output var_dump (), tetapi bukan manajemen memori yang sebenarnya.
Ini mungkin mengatasi beberapa masalah mengapa Anda melihat
double
alih-alihfloat
ditampilkan di var_dump di beberapa komputer lain.Juga, dengan atau tanpa xdebug,
gettype
masih mengembalikanstring(6) "double"
.sumber
Di PHP 7.0.14
Mengembalikan "Kesalahan fatal: Tidak Tertangkap TypeError: Argumen 1 yang diteruskan ke test () harus berupa turunan ganda, diberi float".
Mencetak 2.2111 ke layar.
sumber
float
petunjuk tipe yang valid ( lihat ). Saat Anda mengetikdouble
, ini akan diperlakukan sebagai nama kelas, dan interpreter melontarkan pengecualian, karena ia mengharapkan variabel dengan instancedouble
kelas