Float ������

�����ͣ�Ҳ�и����� float��˫������ double ��ʵ�� real��������������һ�﷨���壺

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
?>

����������ʽ��ʾ��

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

���������ֳ���ƽ̨��أ�����ͨ�����ֵ�� 1.8e308 ������ 14 λʮ�������ֵľ��ȣ�64 λ IEEE ��ʽ����

Warning

�������ľ���

�������ľ������ޡ�����ȡ����ϵͳ��PHP ͨ��ʹ�� IEEE 754 ˫���ȸ�ʽ��������ȡ�������µ����������Ϊ 1.11e-16���ǻ�����ѧ������ܻ��������������Ҫ���ǵ����и�������ʱ�����ݡ�

���⣬��ʮ�����ܹ���ȷ��ʾ���������� 0.1 �� 0.7�������ж���β�������ܱ��ڲ���ʹ�õĶ����ƾ�ȷ��ʾ����˲����ڲ���ʧһ��㾫�ȵ������ת��Ϊ�����Ƶĸ�ʽ����ͻ���ɻ��ҵĽ�������磬floor((0.1+0.7)*10) ͨ���᷵�� 7 ������Ԥ���е� 8����Ϊ�ý���ڲ��ı�ʾ��ʵ������ 7.9999999999999991118...��

������Զ��Ҫ���Ÿ����������ȷ�������һλ��Ҳ��Զ��Ҫ�Ƚ������������Ƿ���ȡ����ȷʵ��Ҫ���ߵľ��ȣ�Ӧ��ʹ�����⾫����ѧ�������� gmp ������

�μ�» ������ָ����ҳ�ļ򵥽��͡�

ת��Ϊ������

���ϣ���˽��йغ�ʱ����ν��ַ���ת���ɸ���������Ϣ�������"�ַ���ת��Ϊ��ֵ"һ�ڡ������������͵�ֵ��������������Ƚ�ֵת�������ͣ�Ȼ����ת���ɸ��㡣�����"ת��Ϊ����"һ���Ի�ȡ������Ϣ���� PHP 5 �������ͼ������ת��Ϊ���������ᷢ��һ�� E_NOTICE ������Ϣ��

�Ƚϸ�����

������������Ϣ���ԣ������ڲ���﷽ʽ��ԭ�򣬱Ƚ������������Ƿ������������ġ������������ػصķ������Ƚϸ�����ֵ�ġ�

Ҫ���Ը������Ƿ���ȣ�Ҫʹ��һ�����ȸ���ֵ��һ�������С���ֵ����ֵҲ����Ϊ������Сֵ��epsilon������С��Ԫȡ�������Ǽ��������ܽ��ܵ���С�IJ��ֵ��

$a �� $b ��С�������λ�����ڶ�����ȵġ�

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;

if(
abs($a-$b) < $epsilon) {
    echo 
"true";
}
?>

NaN

ijЩ��ѧ��������һ���ɳ��� NAN ������Ľ�����˽��������һ���ڸ�����������δ����򲻿ɱ�����ֵ���κ��ô�ֵ�������κ�ֵ������ TRUE�����е���ɢ���ϸ�ȽϵĽ������ FALSE��

���� NAN �������κβ�ֵͬ����Ӧ�� NAN ȥ������ֵ���бȽϣ�����������Ӧ���� is_nan() ����顣