Javascript-Berechnung 2 Stellen nach dem Komma

NameHere

Admiral
Registriert
Sep. 2013
Beiträge
7.379
Hallo,

ich habe vor einigen Jahren mit einem Bekannten ein Rechner geschrieben. Wobei er den meisten Part von den Javascript Variablen geschrieben hat.

Jetzt ist es so das der Rechner nur 0,10 als kleinste Zahl nimmt und Werte wie 0,05 in 0,50 umwandelt.

Vielleicht weis jemand welche Werte ich ändern muss damit der Rechner auch Werte korrekt ausspuckt.
Mein Bekannter ist leider in der nächsten Zeit nicht greifbar, da im Ausland.

Code:
var inputFields = document.getElementById('costs').getElementsByTagName('input');
var classNames = new Array();

String.prototype.trim = function()
{
	return this.replace(/^\s*(\S+)\s*$/, '$1');
}

for(var i = 0; i < inputFields.length; i++)
	{
		inputFields[i].onblur = function()
		{
			if(!this.value) this.value = 0;

			this.value = this.value.replace(/^\$?\s*[0$]?\s*\$?(\S+)\s*$/, '$1').replace(',','');

			if(isNaN(this.value) || !this.value.match(/^\d{1,3}([,]?\d{3})*(\.\d+)?$/)) flagError(this);
			else this.className = this.className.replace(/\s*data_error/, '');

			switch(this.className)
			{
				case 'cents':
					while(this.value.length < 2) { this.value += '0'; }
					break;

				case 'floating_point':
					var fieldID = this.getAttribute('id');

					if((fieldID == 'print_rate' && this.value > 1000) // Adjust to actual maximum
						 || (fieldID == 'printing_hours' && (this.value == 0 || this.value > 24))
						 || (fieldID == 'working_days' && (this.value == 0 || this.value > 31))
						 || (fieldID == 'waste_dollars' && this.value > 100))
					{
						flagError(this);
					}
					break;

				default: // Whole dollars
					this.value = !this.value ? 0 : parseInt(this.value);
					break;
			}
		}
	}

Danke im voraus ;-)
 
Zuletzt bearbeitet:
Sieht aus wie BWL Hausaufgaben D:


function getRound(amount)
{
amount = amount.toPrecision(2);
return amount;
}
 
Leichtes BWL ;-)
Wenn ich den Wert (2) auf 1 oder 3 ändere passiert garnix.


Ich denke es liegt an den function commaFormat (amount oder number)
 
Dann google mal was die Syntax so macht.
 
Sorry! Hab ich schon.
Es ist leider nicht das, was ich brauche.

Was ich brauche ist der Wert mit dem ich den Rechner füttere in html. Dort wandelt er den Wert 0,05 in 0,50 um. Die kleinste Einheit ist 0,10

Du hatest Recht da ich mich nicht richtig ausgedrückt habe
 
Zuletzt bearbeitet:
Ich hab von Java keine ahnung, und das dingen ist ja im Text auch nicht dokumentiert..aber es sieht auf den ersten Blick so aus als würde die genauigkeit leiden :D
 
Code:
function bla (value) {
  if (value < 0.1) {
    value = value * 10
  }
  return value.toPrecision(2)
}

bla(0.05)

Einfach mal 10 und schon wird aus der 0.05 eine 0.5
Oder verstehe ich einfach nicht was du mit dem Ding vorhast? :D
 
Kannst du nochmal genau beschreiben was dein Problem ist? Und vielleicht die HTML-Struktur zu dem "Rechner" mitliefern? Gibt es noch mehr Code dazu?

Dieser "Rechner" berechnet gar nichts. Der validiert nur die Eingaben. Dein Beispiel 0,10 und 0,05 kann man schon allein deswegen nicht nutzen weil in Zeile 15 die Kommas rausgefiltert werden und dadurch aus einer 0,1 eine 01 die dann als 1 interpretiert wird. Mit Punkten als Dezimaltrenner wird in Zeile 17 die flagError funktion aufgerufen, weil durch Zeile 15 die 0 am Anfang entfernt wird und .05 in Z. 17 nicht als valide angesehen wird.

Eine Umwandlung von 0,05 auf 0,5 kann ich nicht reproduzieren. Und sehe auch keine Anhaltspunkte dafür im Code.
 
Zurück
Oben