Avatar billede Ke25 Praktikant
25. marts 2020 - 08:17 Der er 2 kommentarer

Udvid program så det kun accepterer positive tal

Jeg har fået en række opgaver, hvor jeg i Brackets har programmeret en, som udregner prisen på dine sko i USD.
Jeg skal nu udvide programmet så det kun accepterer positive tal, og give en besked til brugeren hvis den givne pris er negativ eller input ikke kan accepteres.
Er der nogle, som kan hjælpe mig med hvordan det gøres?

Mit script ser ud som følger:
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Valuta 2: Forgrening</title>
</head>
<body>
  <p>Prisen i DKK er: <span id="prcDkk"></span></p>
   
  <script>
    var prcUsd = prompt('Hvad koster dine sko i USD?');
    var rateUsd =  prompt('Hvad koster 1 USD i DKK (f.eks. 6.7)?');
    var prcDkk = prcUsd * rateUsd;
    if (prcDkk > 80) { // Varen fortoldes
      if (prcDkk > 1150) {
          prcDkk = prcDkk * 1.17; // Told
        }
      prcDkk = prcDkk * 1.25; // Moms
      prcDkk = prcDkk + 160; // Importgebyr
           
    }
 
document.getElementById('prcDkk').innerHTML = prcDkk;
     
  </script>
</body>
</html>
Avatar billede C:\> Juniormester
25. marts 2020 - 09:47 #1
Noget i den retning:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Valuta 2: Forgrening</title>
</head>
<body>
  <p>Prisen i DKK er: <span id="prcDkk"></span></p>
 
  <script>
    do {
      var prcUsd = prompt('Hvad koster dine sko i USD?');
      if (prcUsd<=0) alert("Skal være positiv");
    } while (prcUsd<=0);
   
    do {
      var rateUsd =  prompt('Hvad koster 1 USD i DKK (f.eks. 6.7)?');
      if (rateUsd<=0) alert("Skal være positiv");
    } while (rateUsd<=0);
   
    var prcDkk = prcUsd * rateUsd;
    if (prcDkk > 80) { // Varen fortoldes
      if (prcDkk > 1150) {
          prcDkk = prcDkk * 1.17; // Told
        }
      prcDkk = prcDkk * 1.25; // Moms
      prcDkk = prcDkk + 160; // Importgebyr
         
    }

document.getElementById('prcDkk').innerHTML = prcDkk;
   
  </script>
</body>
</html>
Avatar billede softspot Forsker
25. marts 2020 - 14:36 #2
Med mindre prompt returnerer numeriske værdier, så skal det returneres nok igennem en konvertering, om ikke andet aht. evt. kommatal.

Jeg vil anbefale flg.

var value = parseFloat(prompt("bla bla bla"));
if(isNaN(value) || value <= 0) { /* fejlmeld */ }

og så ellers anvende den do...while konstruktion som C:\> foreslår.
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

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