03. april 2003 - 13:01
Der er
24 kommentarer og 2 løsninger
Ændring til script
Jeg skal bruge en ændring til dette script. Det skal virke sådan: Hvis 'reparb' er et heltal skal der efterfølgende sættet , og 00 altså, hvis tallet er 50 skal det blive til 50,00 Hvis 'reparb' er feks. 50.5 skal tallet blive til 50,00. Hvordan fikser jeg det ? <!-- function timetal(form) { var t1 = form.reptimer.value; var t2 = form.timepris.value; form.reparb.value = t1 * t2; } //-->
Annonceindlæg fra Cognizant
03. april 2003 - 13:21
#1
function timetal(form) { var t1 = form.reptimer.value; var t2 = form.timepris.value; form.reparb.value = parseInt(t1 * t2) + ",00"; }
03. april 2003 - 13:32
#2
Det virker næsten, men 1/2 ganget med 125 bliver nu 62,00 :)
03. april 2003 - 13:34
#3
Den må ikke runde op
03. april 2003 - 13:36
#4
Det er altså også rundet ned. Rundet op giver det 63 ;-)
03. april 2003 - 13:37
#5
Men ellers kan denne funktion også gøre arbejdet: alert(Math.floor(0.5 * 125) + ",00");
03. april 2003 - 13:40
#6
Hvordan sætter jeg det ind ?
03. april 2003 - 13:42
#7
øhh det giver jo bare en alert box ?
03. april 2003 - 13:45
#8
form.reparb.value = Math.floor(t1 * t2) + ",00";
03. april 2003 - 13:47
#9
Ja, den gør det samme, men er det ikke muligt at få den til at undlade at runde tallet op/ned ?
03. april 2003 - 13:52
#10
Jeg prøvede med dette, men det virker ikke helt efter hensigten :) <!-- function timetal(form) { var t1 = form.reptimer.value; var t2 = form.timepris.value; var kommaTal = Math.floor(t1 * t2) if (kommaTal > 100) { kommaTal -= 100; t1_arr[0] = t1_arr[0] - 0 + 1; } kommaTal = kommaTal + ''; if (kommaTal.length == 0) { kommaTal = "00"; } if (kommaTal.length == 1) { kommaTal = "0" + kommaTal; } form.reparb.value = Math.floor(t1 * t2) + kommaTal; } //-->
03. april 2003 - 14:09
#11
Jo, men du skrev specifikt at du ville have 50.5 til at blive 50 - det er altså en nedrunding. Ellers kan du bruge: form.reparb.value = Math.round(t1 * t2) + ",00";
03. april 2003 - 14:31
#12
Næh det kan jeg ikke. Hvis jeg ganger 125 med 0.5 giver det resuslatet 63, hvilket jo ikke er rigtigt, min lommeregner siger 62,50 og her er problemet. Jeg kan godt få den til at skrive 62.5 ved at fjerne Math.round men det er meningen den skal skrive 62,50 Er det ikke muligt ?
03. april 2003 - 15:44
#13
DU skrev: Hvis 'reparb' er feks. 50.5 skal tallet blive til 50,00. Men skidt da: var t1 = form.reptimer.value; var t2 = form.timepris.value; var nResult = Math.round(t1 * t2); var nRemainder = nResult - Math.ceil(nResult); var sNumber; var sRemainder = (nRemainder == 0 ? "" : nRemainder); sNumber = Math.ceil(nResult) + ","; switch( sRemainder.length + "" ) { case "0": sNumber += "00"; break; case "1": sNumber += sRemainder + "0"; break; case "2": sNumber += sRemainder; break; }; form.reparb.value = sNumber;
03. april 2003 - 15:45
#14
Sorry - ret lig til dette: var nResult = Math.round(t1 * t2,2);
03. april 2003 - 15:54
#15
Jeg får en script fejl. Form er ikke defineret ?
03. april 2003 - 15:58
#16
Det var mig der sov. Jeg har indsat dette men får stadig det samme 125 * 0.5 = 63,00 <!-- function timetal(form) { var t1 = form.reptimer.value; var t2 = form.timepris.value; var nResult = Math.round(t1 * t2,2); var nRemainder = nResult - Math.ceil(nResult); var sNumber; var sRemainder = (nRemainder == 0 ? "" : nRemainder); sNumber = Math.ceil(nResult) + ","; switch( sRemainder.length + "" ) { case "0": sNumber += "00"; break; case "1": sNumber += sRemainder + "0"; break; case "2": sNumber += sRemainder; break; }; form.reparb.value = sNumber; } //-->
03. april 2003 - 16:01
#17
function timetal(form){ var t1 = parseInt(form.reptimer.value); var t2 = parseInt(form.timepris.value); form.reparb.value = Math.round(t1 * t2 * 100)/100; return true; }
03. april 2003 - 16:22
#18
mm12010, kan jeg ikke bruge
03. april 2003 - 16:32
#19
har du prøvet? den giver ikke 63...
03. april 2003 - 16:37
#20
korrekt, men scriptet skal kunne lave 62.5 om til 62,50 og det kan det ikke :)
03. april 2003 - 16:51
#21
ahh - det er bare mig der ikke læser hvad du spørger om :o) - sorry
03. april 2003 - 17:07
#22
function timetal(form){ var t1 = parseInt(form.reptimer.value); var t2 = parseInt(form.timepris.value); tal = String(Math.round(t1 * t2 * 100)/100); tal = ((tal.indexOf(".") == -1) ? tal + ",00" : tal); tal = ((tal.indexOf(".") == tal.length-1) ? tal + "0" : tal); tal = tal.replace(/./gi,","); form.reparb.value = tal; return true; }
03. april 2003 - 21:56
#23
Næhh, det eneste der sker er at resultatet (reparb) = ,,,, :)
03. april 2003 - 23:46
#24
<html> <head> <title>timetal</title> <script language="JavaScript" type="text/JavaScript"> <!-- function timetal(form){ var t1 = parseFloat(form.reptimer.value); var t2 = parseFloat(form.timepris.value); tal = String(Math.round(t1 * t2 * 100)/100); tal = ((tal.indexOf(".") == -1) ? tal + ",00" : tal); tal = ((tal.indexOf(".") == tal.length-2) ? tal + "0" : tal); tal = tal.replace(/\./gi,","); form.reparb.value = tal; return true; } //--> </script> </head> <body> <form name="form" method="post" action=""> <input type="text" name="reptimer"> <input type="text" name="timepris"> <input type="text" name="reparb"> <input type="button" name="Submit" value="Submit" onClick="timetal(this.form);"> </form> </body> </html>
04. april 2003 - 07:35
#25
mm12010: Perfekt, der virker sgu som en drøm :) 20 point til dig og 10 point til 'ocp' for svar. Håber det er ok.
04. april 2003 - 12:12
#26
helt ok :o)
Vi tilbyder markedets bedste kurser inden for webudvikling