regne den ene og anden vej

Tags:    php

Hey - jeg har en funktion som omregner nogle tal som f.eks er "1828383" til et meget mindre tal (en slags valuta ligesom penge i danmark)

her gør jeg sådan:

function MS ( $val )
{
return round($val/3600*4,2);
}

hvor $val er f.eks "63749" eller "9393939".

Hvis jeg kalder MS('230548'); udskriver den 255.03, men hvordan omregner jeg den anden vej?

sådan jeg kan f.eks

function MSDelete( $val )
{
return 230548;
}

Hvis jeg så kalder den: MSDelete('255.03'); så skal den udskrive "230548" ?



Hmm jeg er ikke helt med:
hvis jeg regner regnestykket: 230548/3600*4,2
får jeg 15,24
Så jeg kan ikke helt få det til at passe, men hvis du dividere for at komme den ene vej, skal du gange for at komme den anden vej. Så det modsatte af $val/3600*4.2 er $val*3600*4,2.





Umiddelbart har du jo ikke postet ret meget kode så det er svært lige helt præcist at se hvad du vil, men hvis du vil regne frem og tilbage kan du jo bare bruge standard regneregler.

Fx:
Fold kodeboks ind/udKode 


Det her var jo ekstremt basalt, men da jeg ikke ved om det f.eks er et online spil du vil lave eller hvad det er, så kan jeg ikke rigtig lave mere.

Ville være rart med lidt flere detaljer.



omskriver lige din kode:
Fold kodeboks ind/udKode 


Hvorfor så ikke nogen round inden i funktionen? Fordi man derfor ellers ikke vil kunne regne til det mest præcise tal.



Hey - jeg har en funktion som omregner nogle tal som f.eks er "1828383" til et meget mindre tal (en slags valuta ligesom penge i danmark)

her gør jeg sådan:

function MS ( $val )
{
return round($val/3600*4,2);
}

hvor $val er f.eks "63749" eller "9393939".

Hvis jeg kalder MS('230548'); udskriver den 255.03, men hvordan omregner jeg den anden vej?

sådan jeg kan f.eks

function MSDelete( $val )
{
return 230548;
}

Hvis jeg så kalder den: MSDelete('255.03'); så skal den udskrive "230548" ?


Som du har skrevet dit regnestykke får jeg det til 256,16 :)

Nå, men forklaringen på et en tidligere sagde at regnestykket gav 15 - eller noget i den retninger er:

x/3600*4 != x/(3600*4)

Hvis man ser lidt nærmere på ovenstående formler, vil man se, at de kan omskrives:

x/3600*4 = x/900

Altå, din MS() kan bare returnere $val/900

Hvis du vil regne baglæns skal du derfor bare multiplicere med 900:

BackMS($val) { return $val*900 }

Sådan...
Hvis du gerne vil regne tilbage, er det jo bare at gøre det hele omvendt: :)





Det modsatte af af dividere er at gange og det modsatte af at gange er at dividere, så hvis du skal lave en 'MSDelete' funktion skal du bare gøre det omvendt:
Fold kodeboks ind/udKode 

Mvh.
Claus Thomsen



Indlæg senest redigeret d. 19.04.2007 14:32 af Bruger #10377
t