30. oktober 2001 - 15:50Der er
13 kommentarer og 1 løsning
Decimal afrunder
Hej Eksperter!
Jeg skal have lavet en decimal-afrunder, hvor man afrunder et givent kommatal til et givent antal decimaler.
Det kunnne være en funktion, hvor man angiver min. disse 2 parametre: - tal (kommatallet, vi skal afrunde) - dec (antallet af decimaler, vi vil afrunde til)
function afrund(tal,dec)
Eks: var pi = 3.141592654; afrund(pi,3) -> 3.142
Skabelon til at lave funktionen:
<HTML> <HEAD>
<SCRIPT language=\"JavaScript\"> function afrund(tal,dec){ resultat = tal + \" og \" + dec; myform.taloutput.value = resultat; } </SCRIPT>
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
30. oktober 2001 - 15:54#1
<SCRIPT language=\"JavaScript\"> function afrund(tal,dec){ tal = parseInt(tal); dec = parseInt(dec); divi = 1; for (i = 0; i < dec; i++) { divi = divi * 10; } tal = (Math.round(tal * divi) / divi); resultat = tal + \" og \" + dec; myform.taloutput.value = resultat; } </SCRIPT>
Synes godt om
Slettet bruger
30. oktober 2001 - 15:57#2
Lidt kortere:
<SCRIPT language=\"JavaScript\"> function afrund(tal,dec){ divi = 1; for (i = 0; i < parseInt(dec); i++) divi *= 10; tal = Math.round(parseInt(tal) * divi) / divi; resultat = tal + \" og \" + dec; document.myform.taloutput.value = resultat; } </SCRIPT>
Resultatet skal bare være det forkortede tal, ikke det der og-noget jeg skrev...
Synes godt om
Slettet bruger
30. oktober 2001 - 16:05#4
<SCRIPT language=\"JavaScript\"> function afrund(tal,dec){ divi = 1; for (i = 0; i < parseInt(dec); i++) divi *= 10; tal = Math.round(parseInt(tal) * divi) / divi; document.myform.taloutput.value = tal; } </SCRIPT>
Synes godt om
Slettet bruger
30. oktober 2001 - 16:06#5
Ups, ups, ups!
<SCRIPT language=\"JavaScript\"> function afrund(tal,dec){ divi = 1; for (i = 0; i < parseInt(dec); i++) divi *= 10; tal = Math.round(parseFloat(tal) * divi) / divi; document.myform.taloutput.value = tal; } </SCRIPT>
En ret fatal fejl! parseInt istedet for parseFloat! @8-))
Normalt, hvis man indtaster et højere tal (i antal decimal-feltet) end der er cifre efter kommaet (i kommatal-feltet) vil den bare skrive alle cifrene og ikke noget bag efter. Men prøv så at indtaste disse ting:
Når man indtaster 272 returnerer den: 3.1415926540000005
OG når man indtaster 275 får man: 3.1415926539999996
Hvorfor sker det mon?
---
Til dem der ikke har været med før - Her er den færdige kode:
<HTML> <HEAD>
<SCRIPT language=\"JavaScript\"> function afrund(tal,dec){ divi = 1; for (i = 0; i < parseInt(dec); i++) divi *= 10; tal = Math.round(parseFloat(tal) * divi) / divi; document.myform.taloutput.value = tal; } </SCRIPT>
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.