2016-07-29 16 views
0

浮動小数点数は、科学記法で出力している配列を通してループされています。number_format()は科学的表記法を変換できません

科学的表記法を通常のフラットフロート長表記法の値に変換する必要があります。

私は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 

どのように私は(短い表記を拒否)サイクル全体を通じて、長い表記に私のfloat値を変換するのですか?

答えて

0

あなたの$ parrayでは、1つの数値を浮動小数点(0.000097)として格納し、もう1つではnumber_format(0.000075,8)の結果を格納します。これは文字列です。

それはあなたが9.7E-5を参照してくださいすることを、あなたは0.000097で echo $pairp[2];を呼び出すときこと、そして驚くべきことではないのですが、あなたはを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"に変換されます。

関連する問題