我有一些浮点值通过一个以科学记数法输出的数组循环。
我需要将科学记数法转换为常规的平面浮动长记法值。
我尝试过number_format(),但是在我循环的最后一个循环之前它仍然以科学记数输出?
<?php
$parray = array(array('BTC-EXP','1',0.000097,1),array('BTC-VOX',7,number_format(0.000075,8),7));
for ($x = 0; $x <= 1; $x++) {
var_dump($parray);
foreach($parray as $pairp){
echo "\nDebug info! Limit\n";
echo $pairp[2];
echo "\n";
print_r(number_format($pairp[2],8));
}
}
?>
输出:
Debug info! midpoint
array(2) {
[0]=>
array(4) {
[0]=>
string(7) "BTC-EXP"
[1]=>
string(1) "1"
[2]=>
float(9.7E-5)
[3]=>
int(1)
}
[1]=>
array(4) {
[0]=>
string(7) "BTC-VOX"
[1]=>
int(7)
[2]=>
string(10) "0.00007500"
[3]=>
int(7)
}
}
Debug info! Limit
9.7E-5
0.00009700
Debug info! Limit
0.00007500
0.00007500
Debug info! midpoint
array(2) {
[0]=>
array(4) {
[0]=>
string(7) "BTC-EXP"
[1]=>
string(1) "1"
[2]=>
float(9.7E-5)
[3]=>
int(1)
}
[1]=>
array(4) {
[0]=>
string(7) "BTC-VOX"
[1]=>
int(7)
[2]=>
string(10) "0.00007500"
[3]=>
int(7)
}
}
Debug info! Limit
9.7E-5
0.00009700
Debug info! Limit
0.00007500
0.00007500
如何在整个周期内将浮点值转换为长符号(拒绝短符号)?
答案 0 :(得分:0)
在$ parray中,您将一个数字存储为浮点数(0.000097),而另一个数字存储number_format(0.000075,8)的结果,这是一个字符串。
当你打电话时,这并不奇怪
在0.000097上echo $pairp[2];
,您看到9.7E-5,但是当您为number_format(0.000075,8)回显它时,您会看到一个字符串表示形式(0.00007500)。
让我们为print_r(number_format($pairp[2],8));
做同样的事情。当它被调用float(0.000097)时,它将其格式化为字符串,你会看到0.00009700。当它被称为“0.00007500”时,该字符串将转换为浮点0.000075,然后将其转换回字符串“0.00007500”。