2016-06-24 14 views
1

Ich habe diese Nummer:Wie in php kleine Dezimalzahlen runden

0.108504578471184 

Und ich würde es rund wie zwei Dezimalstellen zu halten, ich habe versucht, die PHP-Funktion round() wie folgt aus:

round(0.108504578471184, 2) 

Erwartetes Ergebnis:

0.11 

Tatsächliches Ergebnis:

0 

Warum gibt es mir 0, wenn ich angegeben habe, dass ich 2 Dezimalstellen möchte? EDIT: Wie in den Kommentaren erwähnt, ist das Problem etwas anderes im Code. Ich bin ein XML-Attribut mit dieser Linie

$selectedMpoint->xpath('/RFile/Machine/MPoint[@No="'.$MPNo.'"]/Operation[@FrqRange="'.$MPFrqRange.'"]/QParam[@Qid="1"]/@Value')[0]; 

Echoing Wahl der Zeile:

echo $selectedMpoint->xpath('/RFile/Machine/MPoint[@No="'.$MPNo.'"]/Operation[@FrqRange="'.$MPFrqRange.'"]/QParam[@Qid="1"]/@Value')[0]; 

gibt mir diese Nummer (wie zuvor erwähnt)

0.1085045784711840 

Aber wenn ich versuche, benutze round() auf ihm gibt es mir nur 0, ich habe versucht, es in eine Variable zu setzen, weil ich dachte, dass es wie die [0], 2 am Ende sein kann es zu vermasseln, aber ich immer noch g et 0e

round($selectedMpoint->xpath('/RFile/Machine/MPoint[@No="'.$MPNo.'"]/Operation[@FrqRange="'.$MPFrqRange.'"]/QParam[@Qid="1"]/@Value')[0], 2 
+0

Kann das Problem nicht reproduzieren. https://ideone.com/exCDwR – Li357

+0

'runde (0.108504578471184, 2)' sollte '0.11' geben, können Sie Ihren ursprünglichen Code teilen? Der Fehler sollte irgendwo anders in Ihrem Code sein! – webNeat

+1

Versuchen Sie mit 'number_format (0.108504578471184, 2)' –

Antwort

0

Obwohl round(0.108504578471184, 2)0.11 für mich produziert, aber man kann versuchen number_format mit:

(float) number_format(0.108504578471184, 2);