store tal, skal bruge mere plads

Tags:    php

Hejsa. Jeg er igang med at få mit eget SteamID til at give mig mit community ID ud fra følgende kode. Men har et problem, da den tilsyneladende ikke kan lide store tal.

Her er min kode
Fold kodeboks ind/udPHP kode 


Den giver mig bl.a. noget lignede dette som output: http://steampowered.com/profiles/7.65611987982433E+16

Det kan jeg ikke bruge til noget, så ville høre om hvordan jeg kan få PHP til at indeholde støre tal. Eller er der en anden smart metode?


Hilsen,
- Magnus



Indlæg senest redigeret d. 19.12.2009 19:01 af Bruger #15047
10 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
En alternativ løsning ville være når du skal til at tilføje dit store nummer. Deler du den op i 2 dele i stedet. Så lægger du din id[2] oven i den lille del, det ser ikke ud som om det går "over" så det behøver du vist ikke at tage højde for. Så skriver du først det store tal ud som streng og så resultat id[2] med den "lille del" som streng.

Altså:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 19.12.2009 23:15 af Bruger #14645
Det er måske lidt klamt, men det virker :P

Fold kodeboks ind/udPHP kode 




Hov, var vist lidt fraværende...

+ skal naturligvis ændres også:

$final = $id[2].'76561197960265728';



En nem og knap så pæn løsning, er mulig hvis du har en mysql db kørende.

select storttal1 + storttal2





brug string i stedet for integer.

$final = $id[2] + '76561197960265728';



Samme problem. :(



Call to undefined function money_format() in C:\xampp\htdocs\steamid.php on line 13



Hov, var vist lidt fraværende...

+ skal naturligvis ændres også:

$final = $id[2].'76561197960265728';


Nope, de skal jo lægges samme til én værdi.
Ikke sættes sammen :) Men lægges sammen :P



Hvis serveren, som det skal køre på, er 64 bits vil din kode sikkert virke fint, men det vil ikke virke på 32 bit maskiner, hvor der ikke er understøttelse i CPU'en for så store tal.

Hvis din PHP installation har understøttelse for GMP (Gnu Multiple Precision), så kan du jo bruge det: http://www.php.net/manual/en/ref.gmp.php





En alternativ løsning ville være når du skal til at tilføje dit store nummer. Deler du den op i 2 dele i stedet. Så lægger du din id[2] oven i den lille del, det ser ikke ud som om det går "over" så det behøver du vist ikke at tage højde for. Så skriver du først det store tal ud som streng og så resultat id[2] med den "lille del" som streng.

Altså:
Fold kodeboks ind/udKode 


Aha! Det virker jo perfect på min 32bit maskine! Tusinde tak!

Og alle andre, tak for svarende :)

- God jul og godt nytår!



t