2010-12-07 4 views
0

Ich habe zwei Zahlen in PHP. 81.0000 und 81. Während sie in Wirklichkeit gleich sind, kann ich nicht erreichen, dass sie in PHP gleich sind.Gleiche Anzahl unterschiedlicher Formate in PHP

Ich habe versucht, beide Zahlen zu schweben und sie werden immer noch nicht als gleich gedacht.

Hat jemand eine Idee, wie ich diese beiden Zahlen haben kann?

+1

Können Sie einige Beispiel-Code enthalten? 'php> echo 81.0000 == 81;' ergibt für mich – baloo

+0

Verwenden Sie '===' zum Überprüfen? – RSK

Antwort

5

Überprüfen Sie die ehrfürchtige WARNING auf php.net aus:

vertrauen nie Gleitzahl führt auf die letzte Stelle, und vergleichen Sie nie Punktzahlen für die Gleichstellung schweben.

Die sehr gut Sie können Typumwandlung zu (int), oder verwenden Sie PHP Rundungsfunktionen wie round(), floor() oder ceil() ist.

UPDATE
Überprüfen Sie die Arbitrary Precision Math Functions wie derjenige @Jose Vega in seiner Antwort darauf hingewiesen werden. Sie sollten dich dahin bringen, wo du hin musst.

+0

+1 Also sehr, sehr wahr. :-) –

+0

+1 für php.net doc quote – Craige

3

bccomp - Vergleichen Sie zwei Zahlen beliebiger Genauigkeit

bccomp (string $left_operand , string $right_operand [, int $scale ]) 

<?php 

echo bccomp('1', '2') . "\n"; // -1 
echo bccomp('1.00001', '1', 3); // 0 
echo bccomp('1.00001', '1', 5); // 1 

?> 
+0

+1, was für eine coole Funktion! – Stephen

Verwandte Themen