Hallo Leute!
Ich bräuchte einen Ansatz einen Tipp (keinen fertigen Code), wie man die Darstellung von Währungen optimnieren kann!
Beispiel: Das Programm spuckt den Wert: 9,9 aus. Wie sage ich dem Java-Script-Programm, dass das so aussehen soll: 9,90!
Analog dazu 99 --> 99,00
und 44.99 --> 44,99
Wer weiß rat?
LG
Florian
So koennt’s gehen…
Hallo Florian,
eine Möglichkeit: Multipliziere die Zahl mit 100, runde ab auf die nächste ganze Zahl, wandele das Ergebnis um in eine Zeichenkette, und füge (durch Verkettung, mit Hilfe der Funktionen substring und length) an der drittletzten Stelle ein Komma ein.
Thomas
schade dass du keinen code willst, weil hae ich gerade gestern gemacht.
// formatiert einen string als waehrung erlaubt kommata und punkte als dezimaltrenner und auch tausendertrenner, wenn der dezimaltrenner ein komma ist
// ausgaeformat: '5.432,10'
// Args:
// input string
// dec: wenn vorhanden wird tausendertrennpunkt eingefuegt
function formatMoney(input,trenner)
{
var t0,t2,i;
var t1=new Array();
var retval = 'falsche Eingabe';
var filler = ' ';
var len = 3;
if (input.match(',') && input.split('.'))
{ t0 = input.replace(/\./g,'').split(','); }
else if (input.match(','))
{ t0 = input.split(','); }
else
{ t0 = input.split('.'); }
if (!t0[0]) { t0[0]=0; }
if (!t0[1]) { t0[1]=0; }
if (isNaN(t0[0]) || isNaN(t0[1]))
{ return retval; }
if (t0[1].length\>2)
{
t0[1] = parseFloat(t0[1].substr(0,2)+'.'+t0[1].substr(2))
t0[1] = parseInt(Math.round(t0[1]));
}
else if (t0[1]3 && trenner)
{
for (i=t0[0].length-3;i\>=(-(t0[0].length%3+1));i-=3)
{
if (i\>=0) { t2=i; len =3; }
else { t2=0; len = t0[0].length%3; }
t1[t1.length] = t0[0].substr(t2,len);
}
t0[0] = t1.reverse().join('.');
}
return t0.join(',');
}