Avatar billede Slettet bruger
12. august 2011 - 12:03 Der er 3 kommentarer og
1 løsning

Præcision på tal i PHP

Hej

Jeg er igang med at oversætte en Javascript-funktion (der krypterer kodeord) til PHP og er stødt på et sidste problem.

Der er en løkke, som ganger et eksisterende tal med et udregnet, fx.:

$num = 1;
for ($i=1; $i <= $b; $i++) {
$num *= udregning($i);
}

Problemet er nu følgende: Dette tal ender med i PHP at være 4.25709310088E+76 hvorimod i Javascript får jeg 4.257093100875771e+76 (mere præcist). Det er et meget stort tal vi har med at gøre, og jeg håber ikke jeg er stødt på et punkt hvor PHP ikke kan følge med, for jeg kan ikke lave om på Javascript-funktionen. Det er præcis de samme tal der bliver ganget op med i JS og PHP, og de er som regel 5-cifrede.

Lige for at skrive dem op så de er nemme at sammenligne:
4.25709310088E+76 (PHP)
4.257093100875771e+76 (JS)

Jeg skal senere runde af til 15 decimaler, hvorfor min PHP-løsning ikke er god nok.

Nogle forslag?

På forhånd tak.
Avatar billede majbom Novice
12. august 2011 - 13:12 #1
nogen grund til at du ikke bruger en allerede eksisterende hash-funktion som f.eks SHA1
Avatar billede Slettet bruger
12. august 2011 - 13:15 #2
Så fandt jeg ud af det :-)

$precision = 15;
$old_precision = ini_get("precision");
ini_set("precision", $precision);
// funktion
init_set("precision", $old_precision);
Avatar billede Slettet bruger
12. august 2011 - 13:17 #3
Hej splazz

Ja. Jeg har fået til opgave at replikere en Javascript-funktion til PHP. Og der kan ikke laves om på JS-funktionen :-)
Avatar billede majbom Novice
12. august 2011 - 13:39 #4
okay :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester