Hallo,
in einem Forumsbeitrag kam die Frage nach der Rappenrundung auf. Anbei findet ihr ein SCript, das genau diese Anforderung löst. //-------------------------------------------------------------------------------------------------------------- // Funktion: getRoundCHFValue(value) // Die Funktion "getRoundCHFValue" erwartet als Parameter eine Zahl. // Liefert die gerundete Dezimalzahl dieser Zahl zurück. // Implementierung nach Vorgabe der rappenrundung in Wikipedia // // Parameter: // value = Eine Zahl. // (z.B. 128.51 oder 128.56 u.s.w.) // // Rückgabe: // Der Wert wird als Dezimalzahl zurückgegeben (z.B. 128.55 oder 128.60 u.s.w.), sonst 0 (Fehler u.s.w.) //--------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------- // Funktion: getRoundCHFValue(value) // Die Funktion "getRoundCHFValue" erwartet als Parameter eine Zahl. // Liefert die gerundete Dezimalzahl dieser Zahl zurück. // Implementierung nach Vorgabe der rappenrundung in Wikipedia // // Parameter: // value = Eine Zahl. // (z.B. 128.51 oder 128.56 u.s.w.) // // Rückgabe: // Der Wert wird als Dezimalzahl zurückgegeben (z.B. 128.55 oder 128.60 u.s.w.), sonst 0 (Fehler u.s.w.) //--------------------------------------------------------------------------------------------------------------
getRoundCHFValue = function(value) { var sAmount = ""; var iNachkommastelle; var dAmount = 0.00; var iWert = 0;
sAmount = new String(value);
if (sAmount != "") { iNachkommastelle = sAmount.lastIndexOf(".");
if (iNachkommastelle = 0) iNachkommastelle = sAmount.length - iNachkommastelle - 1;
if (iNachkommastelle >= 3) iWert = parseInt(sAmount.substring(sAmount.length - iNachkommastelle + 1, sAmount.length - iNachkommastelle + 3));
dAmount = sAmount;
dAmount = dAmount / 5; dAmount = Math.round(dAmount * 100) / 100; dAmount = dAmount * 5;
sAmount = dAmount; }
return parseFloat(sAmount); }