2016-07-29 16 views
0

Ich habe einige Float-Werte, die durch ein Array geloopt werden, die in wissenschaftlicher Notation ausgegeben werden.number_format() schlägt fehl, wissenschaftliche Notation zu konvertieren

Ich muss die wissenschaftliche Notation in einen regulären flachen Float langen Notation Wert konvertieren.

Ich versuchte number_format(), aber es gibt immer noch in wissenschaftlicher Notation bis zum allerletzten Zyklus meiner Schleife aus?

<?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)); 

     } 
} 

?> 

Ausgang:

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 

Wie konvertiere ich meinen Float-Wert zu langer Notation über einen gesamten Zyklus (Kurzschreibweise leugnen)?

Antwort

0

In Ihrem $ parray speichern Sie eine Zahl als Float (0.000097) und in der anderen speichern Sie das Ergebnis von number_format (0.000075.8), was eine Zeichenkette ist.

Es ist dann nicht überraschend, dass, wenn Sie echo $pairp[2]; auf 0,000097 rufen, dass Sie 9.7E-5 zu sehen, aber wenn Sie es für number_format Echo (0.000075,8) Sie sehen eine String-Darstellung (0,00007500).

Machen wir das gleiche für print_r(number_format($pairp[2],8));. Wenn es für float (0.000097) aufgerufen wird, formatiert es es als eine Zeichenfolge, und Sie sehen 0.00009700. Wenn es nach "0.00007500" aufgerufen wird, wird diese Zeichenfolge in eine Gleitkommazahl 0.000075 konvertiert, die dann wieder in eine Zeichenfolge "0.00007500" konvertiert wird.

Verwandte Themen