Hi,
ich habe ein ziemlich schwerwiegendes Problem und bin derzeit noch auf keine Lösung gestoßen. Ich arbeite viel mit Floats und bekomme zB zwei Werte aus der Datenbank, die ich mit floatval() umwandle.
Soweit funktioniert das ja auch ganz ordentlich:
Jetzt würde ich gerne die beiden Zahlen vergleichen, was ich aufgrund der nötigen Genauigkeit mit BCMath mache, also der Funktion bccomp():
Nachdem ich ja nicht weiß, ob es sich bei $num1 oder $num2 um ein Integer handelt würde ich gerne auf Floatbasis bleiben, aber anscheinend versteht bccomp hier die Exponentialdarstellung nicht.
Irgendwelche Ideen, wie ich ihm das beibringen kann, oder wie ich die Exponentialdarstellung umrechnen kann?
ich habe ein ziemlich schwerwiegendes Problem und bin derzeit noch auf keine Lösung gestoßen. Ich arbeite viel mit Floats und bekomme zB zwei Werte aus der Datenbank, die ich mit floatval() umwandle.
Soweit funktioniert das ja auch ganz ordentlich:
PHP-Code:
$num1 = floatval("100000");
$num2 = floatval("1200000");
var_dump($num1); // float(1.0E+5)
var_dump($num2); // float(1.2E+6)
PHP-Code:
var_dump(bccomp($num1, $num2, 2)); // int(0) -> falsch
var_dump(bccomp(intval($num1), intval($num2), 2)); // int(-1) -> richtig
Irgendwelche Ideen, wie ich ihm das beibringen kann, oder wie ich die Exponentialdarstellung umrechnen kann?
Kommentar