2017-05-10 4 views
1

Ich habe die PHP-Handbuch nach oben und unten suchen, um die Antwort zu finden, ich habe sogar SO gesucht, ich bin auf der Suche nach einer Funktion, um eine beliebige Dezimalzahl in technische Notation zu konvertieren feste Anzahl von Dezimalstellen.PHP dezimal zu egineering Notation Funktion

zum Beispiel

12345678 in Notation Technik zu 2 Dezimalstellen festgelegt würde 12.35e6 489.258.239.551 in technische Notation sein Fest bis 5 Dezimalstellen würde 489.25824e9

jetzt sein, die ich über die Funktion sprintf kennen, die mir wissenschaftlichen gibt Notation und nicht die technische Notation

echo sprintf("%.2e","12345678"); 

gibt mir 1.23E + 7

gibt mir 4.89258e + 11

nieither von ihnen sind in der richtigen Technik Format.

hat jemand eine Funktion gefunden, die das tut?

+0

Was ist für Sie die richtige Technik Format ist? 'sprintf' mit dem Argument' e' erzeugt wissenschaftliche Notation mit gegebener Genauigkeit. Es gibt keinen Unterschied zwischen "489.25824e9" und "4.89258e + 11" außer der Genauigkeit. –

Antwort

1

Wenn Sie es nicht brauchen, um reversibel zu sein, empfehle ich substr.

http://php.net/manual/en/function.substr.php

Schreiben Sie eine Funktion, die eine Zahl in einen String-Variable lädt es bekommt und gibt Sub-String (substr), basierend auf Bedingungen

Sie die Stringlänge strlen mit bekommen kann.

http://php.net/manual/en/function.strlen.php

+1

beantwortet keine Frage, aber danke für den Versuch – user3005775

+0

können Sie Ihre Frage in ext anders formulieren? –