Avatar billede rene_petersen Nybegynder
15. maj 2003 - 11:11 Der er 4 kommentarer og
1 løsning

Afrunding til nærmeste antal hundrede i beregninger

Jeg har ved hjælp af olebole og jespernaur fået lavet nedenstående script. Nu viser det sig, at jeg får behov for at runde B3 (skøde) og B4 (pantebrev) op til nærmeste antal hundrede kr. Tallene skal altid rundes op (eks. 1405
-> 1500) - kan dette lade sig gøre ?

Endvidere vil jeg gerne have alle beregninger præsenteret med 2 decimaler - hvordan gør jeg det ?

<html>
<head>
<script type="text/JavaScript">
function pF(str) {
    return parseFloat(str);
}
var calced = false;
function calc(f) {
    if (f.L1.value=="" || f.L2.value=="" || f.B2.value=="" || f.B5.value=="" || f.B6.value=="" || f.B7.value=="") {
        alert("Udfyld alle fornødne felter");
        return false;
    }
    f.B1.value = f.L1.value * f.L2.value;
    f.B3.value = (0.006 * f.B1.value) + 1400;
    f.B4.value = (0.015 * (0.8 * f.B1.value)) + 1400;
    f.B8.value = pF(f.B1.value) + pF(f.B2.value) + pF(f.B3.value) + pF(f.B4.value) + pF(f.B5.value) + pF(f.B6.value) + pF(f.B7.value);
    calced = true;
}
function checkCalc() {
    if (!calced) {
        alert("Tryk først beregn");
        return false;
    }
}
</script>
</head>
<body>

<form action="din_fil.asp" method="post" onsubmit="return checkCalc()">
Antal kvadratmeter: <input type="text" name="L1"><br>
Kvadratmeterpris: <input type="text" name="L2"><br>
Købesum: <input type="text" name="B1"><br>
Tilslutningsbidrag: <input type="text" name="B2"><br>
Skøde: <input type="text" name="B3"><br>
Pantebrev: <input type="text" name="B4"><br>
Eltilslutning: <input type="text" name="B5"><br>
Vandtilslutning: <input type="text" name="B6"><br>
Varmetilslutning: <input type="text" name="B7"><br>
Ialt: <input type="text" name="B8"><br>
<button onclick="calc(this.form)">Beregn</button>
<button type="submit">Send</button>
</form>

</body>
</html>

Venlig hilsen
René
Avatar billede roenving Novice
15. maj 2003 - 11:14 #1
f.B3.value = 100*Math.ceil((0.006 * f.B1.value)/100) + 1400;
    f.B4.value = 100*Math.ceil((0.015 * (0.8 * f.B1.value))/100) + 1400;
Avatar billede roenving Novice
15. maj 2003 - 11:37 #2
Der er et helt klart problem med , og . -- det skal vel også løses??

<html>
<head>
<script type="text/JavaScript">
function pF(str) {
    return parseFloat(str);
}
function toDecs(t){
    nyT=""+(Math.round(t*100))/100;
    if (nyT.indexOf(".")==-1){
        nyT=nyT+".00"
    }
    return nyT;
}
var calced = false;
function calc(f) {
    if (f.L1.value=="" || f.L2.value=="" || f.B2.value=="" || f.B5.value=="" || f.B6.value=="" || f.B7.value=="") {
        alert("Udfyld alle fornødne felter");
        return false;
    }
    f.B1.value = toDecs(f.L1.value * f.L2.value);
    f.B3.value = toDecs(100*Math.ceil((0.006 * f.B1.value)/100) + 1400);
    f.B4.value = toDecs(100*Math.ceil((0.015 * (0.8 * f.B1.value))/100) + 1400);
    f.B8.value = toDecs(pF(f.B1.value) + pF(f.B2.value) + pF(f.B3.value) + pF(f.B4.value) + pF(f.B5.value) + pF(f.B6.value) + pF(f.B7.value));
    calced = true;
}
function checkCalc() {
    if (!calced) {
        alert("Tryk først beregn");
        return false;
    }
}
</script>
</head>
<body>

<form action="din_fil.asp" method="post" onsubmit="return checkCalc()">
Antal kvadratmeter: <input type="text" name="L1"><br>
Kvadratmeterpris: <input type="text" name="L2"><br>
Købesum: <input type="text" name="B1"><br>
Tilslutningsbidrag: <input type="text" name="B2"><br>
Skøde: <input type="text" name="B3"><br>
Pantebrev: <input type="text" name="B4"><br>
Eltilslutning: <input type="text" name="B5"><br>
Vandtilslutning: <input type="text" name="B6"><br>
Varmetilslutning: <input type="text" name="B7"><br>
Ialt: <input type="text" name="B8"><br>
<button onclick="calc(this.form)">Beregn</button>
<button type="submit">Send</button>
</form>

</body>
</html>

hth
jes
Avatar billede roenving Novice
15. maj 2003 - 11:46 #3
Og sådan den også sørger for 2 decimaler, hvis der er 1 i forvejen:

function toDecs(t){
    nyT=""+(Math.round(t*100))/100;
    if (nyT.indexOf(".")==-1){
        nyT=nyT+".00";
    }
    if (nyT.indexOf(".")==nyT.length-2){
        nyT=nyT+"0";
    }
    return nyT;
}
Avatar billede rene_petersen Nybegynder
15. maj 2003 - 12:20 #4
Mange tak for de hurtige svar
Avatar billede roenving Novice
15. maj 2003 - 12:22 #5
Velbekomme -- og tak for points ;~}
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