function d_places(n,p) {
var factor = 1;
var ans = 0;
var j = 0;
// I for-loopen nedan multipliceras factor med 10 p gånger,
// vilket är samma sak som 10^p, vilket kan skrivas som Math.pow(10, p)
for (j = 1; j <= p; j++)
factor = factor * 10.0;
// Nedan adderas n till kvoten av 0.05 och factor. Summan multipliceras
// därefter med factor och avrundas till närmast hela tal. Det talet
// divideras sedan med factor och returneras.
//
// Uträkningen kan förenklas till:
// ans = Math.round(factor * n) / factor
//
ans = Math.round((n + 0.05 / factor ) * factor) / factor;
return ans;
}
function calc() {
// RegExp:et nedan matchar alla kommatecken (',').
// Man kan fråga sig varför i-flaggan är satt, eftersom syftet med den är att inte
// göra skillnad på gemener och versaler
rexp = /\,/gi;
// Tecknet som skall ersätta alla kommatecken
newstr=".";
// Nedan beräknas ett värde baserat på vikt, kalorier, och fetthalt.
// Resultatet avrundas till 1 decimal med funktionen ovan.
//
// Det reguljära uttrycket omvandlar värden av typen 97,65, till 97.65
document.f1.points.value = d_places(
(document.f1.weight.value.replace(rexp, newstr)/100)*
(document.f1.cals.value.replace(rexp, newstr)/60 +
document.f1.fat.value.replace(rexp, newstr)/9),1);
}
function iPoints(){
var f = document.vvp;{ [b]<--- Ta bort '{'[/b]
f.points.value =( [b]<--- Ta bort '('[/b]
(f.volym.value/100)*
(f.kcal.value/60 +
f.fett.value/9);
}
<input name="knp" type="[b]button[/b]"...
function iPoints(){
var f = document.vvp;{ [b]<--- Ta bort '{'[/b]
f.points.value =( [b]<--- Ta bort '('[/b]
(f.volym.value/100)*
(f.kcal.value/60 +
f.fett.value/9);
}
<input name="knp" type="[b]button[/b]"...
Tack för det... det löst det problemet... Men kan jag avrunda decimaler på följande sätt:
function iPoints(){
var f = document.vvp;
var val =
(f.volym.value/100)*
(f.kcal.value/60 +
f.fett.value/9);
var fl = Math.floor(val);
if (val < fl + 0.2){
val = fl;
} else if (val >= fl + 0.2 && val <= fl + 0.7){
val = fl + 0.5;
} else if (val > fl + 0.7){
val = Math.ceil(val);
}
f.points.value = val;
}
kan man göra en enkel replace (byta , till .) som funkar i mobipocket?
Dvs kan varken använda mig av arrays, funktioner, variabler, eller vilkor..
replacen vill jag skall ske i: