Avatar billede hvidlogspusher Nybegynder
09. februar 2003 - 22:04 Der er 9 kommentarer og
1 løsning

ignore division by zero

Warning: Division by zero

hvordan kan jeg få mit script til at fatte at den ikke skal skrive den warning ud !?
Avatar billede taskmgr Nybegynder
09. februar 2003 - 22:06 #1
if ($tal == '0') {$tal = "-";}
?
Avatar billede taskmgr Nybegynder
09. februar 2003 - 22:07 #2
Hehe... så dividerer du med "-" istedet :))

Er lidt træt, men du fik vel min pointe?
Avatar billede mikl-dk Nybegynder
09. februar 2003 - 22:11 #3
<?
$taeller = rand(0,100); // tilfældigt tal
$naevner = rand(0,100); // tilfældigt tal
$resultat = false;

if ($naevner != 0)
  $resultat = $taeller / $naevner;
?>

Sådan kunne det gøres... Og senere kan du så (ved fremvisning af resultatet), lave en if($resultat != false)...

/mikl-dk
Avatar billede jakoba Nybegynder
09. februar 2003 - 22:14 #4
når du siger

$variabel = $et_tal / 0;

kommer der ikke noget brugbart indhold i $variabel. Så hvad med at sørge for at opdage situationen FØR den division, så du kan komme en fornuftig default ind i $variabel
Det er wel det samme tskmgr er inde på:

if ( $divisor == 0 ) {
    $resultat = (fornuftigt valgt default)
} else {
    $resultat = $et_tal / $divisor
}

mvh JakobA
Avatar billede hvidlogspusher Nybegynder
09. februar 2003 - 22:17 #5
nevermind
Avatar billede hvidlogspusher Nybegynder
09. februar 2003 - 22:17 #6
fandt ud at sætte @foran min variabel
Avatar billede mikl-dk Nybegynder
09. februar 2003 - 22:18 #7
Det er også det, jeg har skrevet...
Avatar billede mikl-dk Nybegynder
09. februar 2003 - 22:18 #8
Altså ikke med @, men mht. jakoba's svar...
Avatar billede angam Nybegynder
09. februar 2003 - 22:21 #9
Den er ikke heeelt god endnu.

Hvis du får en warning (der nu ikke vises pga. dit @ foran sætningen), sættes resultatet til null (der ikke er det samme som 0).

Du bør gøre som:

$resultat=0;
if (!$divisor) $resultat = $dit_tal / $divisor;

.. så du er sikker på at resultat altid indeholder et validt tal.
Avatar billede olebole Juniormester
10. februar 2003 - 05:47 #10
<ole>

angam >> Nej, netop ikke  :)
At dividere med 0 er 'ulovligt' - dvs, uden matematisk mening. Det må endelig ikke give resultatet 0 eller noget somhelst andet validt tal.
Det eneste, der giver mening, er at forhindre udregningen, inden den foretages, hvis divisoren er 0.

/mvh
</bole>
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