Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Toast

Tripel-As

Dabei seit: 02.01.2011

Beiträge: 210

 

1 Zum Seitenanfang

Montag, 6. Februar 2012, 15:34

[JS] Problem beim Runden

Hi.

Ich habe ein mysteriöses Problem beim Runden. Zunächst der Code:

  Spoiler Spoiler

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);

  Spoiler Spoiler

HTML

1
<label>Rabatt:&nbsp;</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 :P

Liebe Grüße, Toast
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

2 Zum Seitenanfang

Montag, 6. Februar 2012, 15:40

hey toast, könntest du den code bei http://jsfiddle.net/ posten? dann könnte man ein wenig rumspielen und verbesserungen vornehmen
Mein kleines Projekt
-Cruel Online-
 

Treml

Tripel-As

Dabei seit: 19.03.2003

Beiträge: 237

 

3 Zum Seitenanfang

Montag, 6. Februar 2012, 17:09

In Zeile 30 wird nur eine Referenz auf das Feld, nicht aber auf seinen Inhalt übergeben. Das müsste man ausbessern auf:

Javascript-Quelltext

1
rab_f = rounding(document.getElementById('rab_f').value);

Ich habe es nicht getestet, aber wenn Du sagst, dass es sonst funktioniert, müsste das eigentlich schon alles sein.
i u t w w f c b - u y a s t m w m
 

Toast

Tripel-As

Dabei seit: 02.01.2011

Beiträge: 210

 

4 Zum Seitenanfang

Dienstag, 7. Februar 2012, 00:08

:w00t: Ohne Worte :D

Genau das war der (offentsichtliche) Fehler :rolleyes:

*in die Ecke stell und schäm*

Vielen Dank!

Liebe Grüße, Toast
 

Ähnliche Themen