46356
Goto Top

Mit hohen Zahlen Rechnen in PHP?

Guten Tag!

Angenommen ich habe eine sehr hohe Zahl mit mehr als 60 Stellen:
11111111111111111111111111111111111111111111111111111111111111;

Nun habe ich einen kleinen PHP Script:
<?php
echo 11111111111111111111111111111111111111111111111111111111111111 * 2;
?>

Dann bekomme ich in PHP folgendes Ergebnis:
2.2222222222222E+61

Wie kann ich nun die 2 wieder dividieren, sodass am Schluss wieder
11111111111111111111111111111111111111111111111111111111111111
herauskommt?

Folgendes funktioniert schonmal nicht:
<?php
echo 2.2222222222222E+61 / 2;
?>

Ergebnis:
1.1111111111111E+61

Es müssen die vielen Einsen herauskommen, auch wenn beide Ergebnisse die selben sind...
... dieses Beispiel ist der einfeichheit halber leicht gewählt, sodass die meisten hoffentlich verstehen werden, was ich meine...

Liebe Grüße,
Alex

Content-Key: 94574

Url: https://administrator.de/contentid/94574

Printed on: April 26, 2024 at 15:04 o'clock

Member: Arano
Arano Aug 16, 2008 at 10:57:32 (UTC)
Goto Top
Moin,

The size of an integer is platform-dependent, although a maximum value of about two billion is the usual value (that's 32 bits signed). PHP does not support unsigned integers. Integer size can be determined using the constant PHP_INT_SIZE, and maximum value using the constant PHP_INT_MAX since PHP 4.4.0 and PHP 5.0.5.
PHP-Manual - Integers

~Arano
Mitglied: 46356
46356 Aug 16, 2008 at 12:33:40 (UTC)
Goto Top
Hallo Arano!

Ich versuche nun schon eine gute Stunde das Problem duch Deinen Vorschlag zu lösen.
Ich weiß ungefähr was ich machen sollte (integer zu float konvertieren (natürlich nur dann, wenn is_float false ergibt))...
... aber wie ich das zurückkonvertiere habe ich keine Ahnung face-sad

google hilft mir leider auch nicht :@

LG. Alex
Member: ThaGoob
ThaGoob Aug 16, 2008 at 13:07:49 (UTC)
Goto Top
Möglicherweise helfen dir die BC Math Funktionen weiter:

BC Math
Mitglied: 46356
46356 Aug 16, 2008 at 13:14:55 (UTC)
Goto Top
Hallo ThaGoob!

Danke für Deinen Tipp!
Wie erhofft, hat's funktioniert :D...
... vielen Dank!

Beitrag ist nun gelöst...

LG. Alex
Member: Arano
Arano Aug 16, 2008 at 15:19:59 (UTC)
Goto Top
Achje, da muss ich mich wohl einmal entschuldigen !

Ich dachte das so hohe Zahlen gar nicht möglich wären und wollte mit meinem Beitrag darauf hinweisen.
Aber wie es aussieht habe ich mich da geirrt !

Schade, habe meine PHP ohne bcmath kompiliert und kann damit jetzt nicht "rumspielen" ...naja ich brauchs bis jetzt eh nicht ^^

Schönes Wochenende noch
~Arano