Hi.
Ich habe ein mysteriöses Problem beim Runden. Zunächst der Code:
Javascript-Quelltext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function rounding(x) {
k = (Math .round(x * 100 ) / 100 ).toString();
k + = (k.indexOf('.' ) = = - 1 )? '.00' : '00' ;
return k.substring(0 , k.indexOf('.' ) + 3 );
}
function zwischensumme()
{
var kos= 0 ;
var stck= 0 ;
var rab_f= 0 ;
var chk= 0 ;
var summe= 0 ;
chk_array = document .getElementsByTagName('select' );
for (var i= 0 ;i< = 8 ;i++ ) {
kos = rounding(document .getElementById('kos' + i).value);
document .getElementById('kos' + i).value = kos;
stck = rounding(document .getElementById('stck' + i).value);
document .getElementById('stck' + i).value = stck;
rab = rounding(document .getElementById('rab' + i).value);
document .getElementById('rab' + i).value = rab;
chk = chk_array[i].selectedIndex;
if (chk! = 0 ){
summe = parseInt(summe)+ parseInt(rounding(kos* stck* ((100 - rab)/ 100 )));
document .getElementById('zwi' + i).value = rounding(kos* stck* ((100 - rab)/ 100 ));
}
else {
document .getElementById('zwi' + i).value = 0 ;
}
}
rab_f = rounding(document .getElementById('rab_f' ));
document .getElementById('summe' ).value = rounding(summe);
alert (rab_f);
document .getElementById('rab_f' ).value = rab_f;
document .getElementById('final' ).value = rounding(summe* (100 - rab_f)/ 100 );
Javascript-Quelltext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function rounding(x) {
k = (Math .round(x * 100 ) / 100 ).toString();
k + = (k.indexOf('.' ) = = - 1 )? '.00' : '00' ;
return k.substring(0 , k.indexOf('.' ) + 3 );
}
function zwischensumme()
{
var kos= 0 ;
var stck= 0 ;
var rab_f= 0 ;
var chk= 0 ;
var summe= 0 ;
chk_array = document .getElementsByTagName('select' );
for (var i= 0 ;i< = 8 ;i++ ) {
kos = rounding(document .getElementById('kos' + i).value);
document .getElementById('kos' + i).value = kos;
stck = rounding(document .getElementById('stck' + i).value);
document .getElementById('stck' + i).value = stck;
rab = rounding(document .getElementById('rab' + i).value);
document .getElementById('rab' + i).value = rab;
chk = chk_array[i].selectedIndex;
if (chk! = 0 ){
summe = parseInt(summe)+ parseInt(rounding(kos* stck* ((100 - rab)/ 100 )));
document .getElementById('zwi' + i).value = rounding(kos* stck* ((100 - rab)/ 100 ));
}
else {
document .getElementById('zwi' + i).value = 0 ;
}
}
rab_f = rounding(document .getElementById('rab_f' ));
document .getElementById('summe' ).value = rounding(summe);
alert (rab_f);
document .getElementById('rab_f' ).value = rab_f;
document .getElementById('final' ).value = rounding(summe* (100 - rab_f)/ 100 );
HTML
1
<label > Rabatt: </label > <input class="nr" type="text" maxlength="7" name="rab_f" id="rab_f" onClick="zwischensumme()" > <label class="auto" > %</label > <div class="clear" > </div >
HTML
1
<label > Rabatt: </label > <input class="nr" type="text" maxlength="7" name="rab_f" id="rab_f" onClick="zwischensumme()" > <label class="auto" > %</label > <div class="clear" > </div >
Die Problemschilderung:
Zuerst einmal beachtet er in diesem Feld nicht den onClick-Befehl... zum Glück aber in den anderen Feldern. Das große Problem ist, dass beim Runden der Wert Nan herauskommt und ich keine Ahnung habe wieso, zumal er bei den anderen Feldern, die äquivalent aufgebaut sind, nicht herauskommt...
Hoffe, mir kann jemand die Erleuchtung bringen
Liebe Grüße, Toast