此函数将包含字符串的数组转换为可能包含或不包含小数的数字。
function toNumberArray(array $stringArray) {
print_r ($stringArray);
echo "<hr>";
$n = [];
for ($i = 0; $i < count($stringArray); $i++) {
$n[] = settype ( $stringArray[$i],"float");
$x = (float) $stringArray[$i];
echo $x;
echo "<br>";
}
return $n;
}
print_r (toNumberArray(["1.123456789012345","2.2000000000000002","3.2999999999999998"]));
结果:
数组([0] =&gt; 1.123456789012345 [1] =&gt; 2.2000000000000002 [2] =&gt; 3.2999999999999998)
1.1234567890123
2.2
3.3
数组([0] =&gt; 1 [1] =&gt; 1 [2] =&gt; 1)
问题:
为什么settype没有将字符串转换为浮点数?
如果小数点后有14个或更多位置,如何转换?