Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php in_数组忽略小数点后的000_Php - Fatal编程技术网

Php in_数组忽略小数点后的000

Php in_数组忽略小数点后的000,php,Php,我希望它应该显示“否”,但它会忽略小数点后的0。您可以做的是(字符串)$arr[0]=='2.1000'。唯一的问题是,当在PHP中使用浮点数时,它将“删除”前导零和尾随零,因此它们始终不会是零,除非您最初将它们存储为字符串,或者如果您在另一个数组中跟踪前导零和尾随零。2.1将始终等于2.1000,因为它们表示相同的值(只是表示形式不同,一旦PHP解析数字就会丢失)。您必须将至少一个值存储为字符串'2.1000',才能获得这种“表示比较”。数字2.1000的内部浮点表示形式与2.1完全相同,因此

我希望它应该显示“否”,但它会忽略小数点后的0。

您可以做的是
(字符串)$arr[0]=='2.1000'
。唯一的问题是,当在PHP中使用浮点数时,它将“删除”前导零和尾随零,因此它们始终不会是零,除非您最初将它们存储为字符串,或者如果您在另一个数组中跟踪前导零和尾随零。

2.1
将始终等于
2.1000
,因为它们表示相同的值(只是表示形式不同,一旦PHP解析数字就会丢失)。您必须将至少一个值存储为字符串
'2.1000'
,才能获得这种“表示比较”。

数字
2.1000
的内部浮点表示形式与
2.1
完全相同,因此代码无法分辨差异


我们必须始终注意数值的内部表示形式与我们在代码中使用的表示形式或在输出中看到的表示形式之间的差异。

您是否尝试在
2.1000
周围加引号?
$arr = array(2.1,3.1);

if(in_array(2.1000,$arr))
   echo "yes";
else
   echo "no";