Gå til innhold

Potensregning med php


Anbefalte innlegg

Hei, funderte litt på Hvordan man kunne ta potensregning i php. Kom fram til denne enkle løsningen, men den kan ikke bla. ta roter (1/2 (n^0.5)) osv.

 

Her er koden:

<form name="form1" method="get" action="">

  <input name="do" type="text" id="do">

  <input type="submit" value="Regn ut">

</form>

<?

 

$formula = $_GET['do'];

 

if (!empty($formula)) {

$tall = 1;

 

list($G, $e) = split("\^", $formula);

print $G . " opphevet i " .$e. " potens = ";

 

for ($i=0;$i<$e;$i++) {

$tall = $tall*$G;

}

 

if ($tall == 0) {

$tall=1;

}

elseif ($e == 1) {

$tall = $G;

}

 

}

 

print $tall;

 

?>

 

Den fungerer som sagt fint på eksponenter i heltall. (ikke desimaler).

 

Det er 2 spørsmål jeg har;

 

1. Når jeg tar 23^45 Får jeg dette ut av skriptet mitt:

23 opphevet i 45 potens = 1.8956258430116E+061

 

Er dette en form for naturlig form? (1,23 * 10^3 (1230)) eller står den E,en rett og slett for Error?

 

2. Har du noen ide om hvordan jeg kan få til å regne ut brøker med php?

Det vil si f.eks 4^0.5 = 2, 16^0.5 = 4 (Kvadratrota).

 

 

På forhånd takk

Endret av robgar
Lenke til kommentar
Videoannonse
Annonse

En annen ting, PHP har sinne begrensninger, når jeg tok 2000^1000 Kom det bare:

 

1.#INF,

 

Det vil si at PHP stopper å regne ut for store tall. Men om jeg på et eller annet vis hadde gjort dette om til en streng , altså tekst og ikke tall, i for-løkken, så vil det gå, men hvordan!`?

 

EDIT: Takk for de.

Endret av robgar
Lenke til kommentar
En annen ting, PHP har sinne begrensninger, når jeg tok 2000^1000 Kom det bare:

 

1.#INF

^ er bitvis-XORing ikke "opphøyd i" som dette tegnet ofte er på kalkulatorer o.l.

Se hva PHP manualen skriver om ^ her

Jeg lærer noe nytt om PHP hver dag.

 

Men det var i mitt script, og ikke i pow(), det(mitt) lager en loop så lenge i er mindre enn eksponenten og ganger tallet med Grunntallet.

 

Der bruker jeg ^ i en egen tekst boks.

 

| 2000^1000 | regn ut

Endret av robgar
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...