2017-06-22 5 views
0

ich ein Problem bin vor der Dezimalzahl in der Formatierung, nehme ich an zwei Dezimalzahl haben kann, in der Dezimalzahl vor oder nach dem 18. Ziffer sein kann, Format wie:Dezimalzahl Formatierung Ausgabe

$num1 = 12345678912345678912345.52458 

$num2 = 123.54893256666666 

für über zwei Ziffern mein Wunsch heraus ist Basis der Bedingung, dass

für $ num1 ist: wenn dezimal nach dem 18. Ziffer kommt so das Dezimalsystem nur nach 18digit sein sollte und danach 2-stellige als Präzisions kommt nur

für $ num2: wenn dezimal vor dem 18. Ziffer kommt so sollte die Dezimalzahl sein, wie es Position ist aber die Genauigkeit sollte nur 2 Ziffer nach dezimal

Wunsch heraus sein:

$num1 = 123456789123456789.00 
$num2 = 123.54 

Ich habe versucht, dies mit der Nummer number_format() wie unten:

<?php 
    $num1 = 12345678912345678912345.52458; 
    $num2 = 123.54893256666666; 
    $num1 = number_format($num1,2,'.',''); //it is not working 
    $num2 = number_format($num2,2,'.',''); //it is working 
    echo $num1."<br>".$num2; 

Ausgabe:

for $num1 = 12345678912345679593472.00 where it should comes like 123456789123456789.00 

for $num1 = 123.55 that is ok 

bitte helfen ich nicht bekommen, wie number_format() für $ num1

+1

PHP Zahlen nicht umgehen kann, die so groß sind. Führen Sie ein 'echo PHP_INT_MAX;' durch und sehen Sie, wie groß die maximale Größe auf Ihrem System ist (abhängig davon, ob Sie die 32- oder 64bit-Version verwenden). –

+0

aber meine Nummer ist dezimal? wird 'PHP_INT_MAX' funktionieren –

+0

Ja. Zahlen sind Zahlen. Andernfalls wäre es kein Problem, wenn Sie einfach eine '.0' nach einer zu großen Ganzzahl hinzufügen müssten. –

Antwort

0

verwenden Warum Sie, dass große Zahl benötigen? Standardmäßig unterstützt PHP 14 Ziffern. zum Beispiel

$num = 12345678122222; 
if (strpos($num, '.') !== false) { 
    echo 'true'; 
}else 
    echo 'false'; 

Wenn Sie diesen Code zu schreiben, wird es falsch Echo, das ist richtig, aber wenn Sie eine weitere Ziffer $ num fügen Sie dann php wird es nicht richtig handhaben.

Und für Sie zwei Ziffern nach dem Komma. Siehe diesen Link es bereits

beantwortet wird

PHP: show a number to 2 decimal places

+0

Die maximale Größe einer ganzen Zahl in PHP ist nicht immer gleich. Es hängt davon ab, ob Sie 32- laufen. oder 64-Bit-Version von PHP. Die OP-Nummer ist jedoch selbst für 64-Bit-Systeme zu groß. –

+0

ja du hast Recht. Aber ich habe 64 Bit OS und derzeit arbeitet es mit nur 14 Ziffern. –

+0

Sicher, aber Sie müssen auch die 64-Bit-Version von PHP haben. –