Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 当把一串数字转换成浮点数时,为什么我只得到第一个数字?_Php_String - Fatal编程技术网

Php 当把一串数字转换成浮点数时,为什么我只得到第一个数字?

Php 当把一串数字转换成浮点数时,为什么我只得到第一个数字?,php,string,Php,String,我知道这个问题以前已经发布过了。有人和我有同样的问题,他纠正了他的编码风格。没有提供进一步的细节。我正在使用UTF-8。我正在使用Windows10。我的代码和结果如下。非常感谢您的帮助 $nickp[0] = trim($nickp[0]); $nickp[1] = trim($nickp[1]); $nickp[2] = trim($nickp[2]); echo"<br>"; echo"var dump on nickp"; echo

我知道这个问题以前已经发布过了。有人和我有同样的问题,他纠正了他的编码风格。没有提供进一步的细节。我正在使用UTF-8。我正在使用Windows10。我的代码和结果如下。非常感谢您的帮助

$nickp[0] = trim($nickp[0]);
$nickp[1] = trim($nickp[1]);
$nickp[2] = trim($nickp[2]);


echo"<br>";
echo"var dump on nickp";
echo"<br>";
var_dump($nickp);  //      returns array(3) { [0]=> string(459) "15336.50 " [1]=> string(36) "" [2]=> string(0) "" }
echo"<br>";


echo"here is a print r..";
echo"<br>";
print_r($nickp);
echo"<br>";



$nickpf = (float)$nickp;

echo"<br>";
echo"var dump on float nickpf";
echo"<br>";
var_dump($nickpf);  // returns float(1)
echo"<br>";

echo"<br>";
echo"var dump on float nickpf[0]";
echo"<br>";
var_dump($nickpf[0]);  returns NULL
echo"<br>";


echo"just nickpf";
echo"<br>";
echo $nickpf;  // returns 1
echo"<br>";

$nickpf =( $nickpf -13380.50);

echo"just nickpf birth year";
echo"<br>";
echo $nickpf;// returns - 13379.50
echo"<br>";
$nickp[0]=trim($nickp[0]);
$nickp[1]=修剪($nickp[1]);
$nickp[2]=修剪($nickp[2]);
回声“
”; 回显“nickp上的var转储”; 回声“
”; var_dump($nickp);//返回数组(3){[0]=>string(459)“15336.50”[1]=>string(36)”[2]=>string(0)”} 回声“
”; echo“这是一个打印r…”; 回声“
”; 印刷费($nickp); 回声“
”; $nickpf=(浮动)$nickp; 回声“
”; echo“浮动nickpf上的var转储”; 回声“
”; var_dump($nickpf);//返回浮动(1) 回声“
”; 回声“
”; echo“浮动nickpf[0]上的var转储”; 回声“
”; var_dump($nickpf[0]);返回空值 回声“
”; 回音“刚刚好”; 回声“
”; echo$nickpf;//返回1 回声“
”; $nickpf=($nickpf-13380.50); echo“刚出生一年”; 回声“
”; echo$nickpf;//返回-13379.50 回声“
”;
这就是你要找的吗

$nickp = ["15336.50", "12312.11", "123123.22"]; // example

$nickp[0] = trim($nickp[0]);
$nickp[1] = trim($nickp[1]);
$nickp[2] = trim($nickp[2]);


echo floatval(preg_replace('/[[:^print:]]/', "", $nickp[0]));

你能把
$nickp
的值放在上面问题的注释中吗?你似乎在问为什么
(float)$array
是1。如果是,请参阅。空数组返回0,非空数组返回1.15336.50是我想要作为floatval的字符串($nickp[0])返回0,这意味着在字符串数字前面有隐藏字符。@sonny,这就是为什么我要求在第一条注释中打印结果的原因。当你提到
返回数组(3){[0]=>string(459)“15336.50”
时,我显然怀疑。我已经编辑了我的答案,检查它仍然返回0。有一个隐藏的行返回和其他隐藏的垃圾作为样式背景,可以改变颜色。