$arr = array(2.1,3.1);
if(in_array(2.1000,$arr))
echo "yes";
else
echo "no";
「いいえ」と表示する必要がありますが、小数点以下は0を無視します。in_arrayは10進数の後に000を無視します
$arr = array(2.1,3.1);
if(in_array(2.1000,$arr))
echo "yes";
else
echo "no";
「いいえ」と表示する必要がありますが、小数点以下は0を無視します。in_arrayは10進数の後に000を無視します
あなたができることは(string)$arr[0] == '2.1000'
です。唯一の問題は、PHPで浮動小数点数を使用する場合、先頭と末尾のゼロを「削除」するため、最初に文字列として格納しない限り、または先頭と末尾を追跡しない限り、常に0にならないことです別の配列の0。それらが同じ値を表すため
2.1
は常に2.1000
等しい、(彼らは同じようにすぐPHP番号を解析として失われる表現に異なる)であろう。このような "表現の比較"を得るには、少なくとも1つの値を文字列'2.1000'
として保存する必要があります。
2.1000
の内部浮動小数点表現は、2.1
とまったく同じです。したがって、コードではその違いを認識できません。
の内部表現の数値と、私たちがコードで使用する表現または出力に表示される表現との違いに常に注意する必要があります。
'2.1000'を引用符で囲みましたか? –