Php 当把一串数字转换成浮点数时,为什么我只得到第一个数字?
我知道这个问题以前已经发布过了。有人和我有同样的问题,他纠正了他的编码风格。没有提供进一步的细节。我正在使用UTF-8。我正在使用Windows10。我的代码和结果如下。非常感谢您的帮助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
$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。有一个隐藏的行返回和其他隐藏的垃圾作为样式背景,可以改变颜色。