Summe in Worten ausgeben

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
TimTimKarto
Beiträge: 13
Registriert: 15.04.2011, 07:57

Summe in Worten ausgeben

Beitrag von TimTimKarto » 29.04.2011, 06:42

Muss ich vielleicht die variable "cWords" rauslöschen, damit ich keine Nachkommazahlen im Ausgabefeld habe?:(:(:(:(

202Archer
Beiträge: 1
Registriert: 13.05.2013, 00:18

Summe in Worten ausgeben

Beitrag von 202Archer » 15.05.2013, 11:51

Hallo Liebe Leute :)
Also ich habe ein bisschen an dem Skript (siehe unten) herum gebastelt und es fast geschafft mein Problem ist das ich das "UND" vor den ganzen "zehnern" nicht entfernt bekomme.
In Verbindung mit den Zahlen 1-9 (einern) funktioniert es ja
so wird ...
? 44,44 € als "vierundvierzig Euro und  vierundvierzig Cent"
richtig ausgegeben,

jedoch bei ganzen Zehnern wie beispielsweise...

? 40,40 € als "undvierzig Euro und undvierzig Cent"
mit dem "und" vor der 40 falsch dargestellt.

Zugegebener Maßen habe ich kaum Ahnung von Java und brauche es auch nicht so oft - vielleicht hat ja jemand von euch eine Idee und wäre so charmant die Lösung zu posten.

Schon mal viiiiiiiielen Dank im Voraus - ich bin schon sehr gespannt auf eure Skripts

hier ist erst mal meins an dem ihr gern herum basteln könnt.

Liebe Grüße und einen sonnigen Tag euch allen

[line]

aTens = [ "zwanzig", "dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", "achtzig","neunzig"];
aOnes = [ "", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun",
"zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achtzehn",
"neunzehn"];







function ConvertToHundreds(num)
{
var cNum, nNum;
var cWords = "";
var hilfenum = 0;

num %= 1000;
if (num > 99)
{
/* Hundreds. */
cNum = String(num);
nNum = Number(cNum.charAt(0));
cWords += aOnes[nNum] + "hundert";
num %= 100;
}

if (num > 20)
{
if (num > 0)
{
/* Ones and teens. */
hilfenum = num;
num %= 10;
nNum = Math.floor(num);
cWords += aOnes[nNum] + "und";
num = hilfenum;
}
}

if (num > 19)
{
/* Tens. */
cNum = String(num);
nNum = Number(cNum.charAt(0));
cWords += aTens[nNum - 2];
num %= 10;
}

if (hilfenum == 0)
{
if (num > 0)
{
/* Ones and teens. */
nNum = Math.floor(num);
cWords += aOnes[nNum];

if (aOnes[nNum] == "")
{
cWords += "";
}
}
}

return cWords;
}

function ConvertToWords(num)
{
var aUnits = [ "tausend", "million", "billionen", "trillionen", "quadrillionen"];
var cWords = (num >= 0 && num < 2) ? "" : " Euro und ";
var nLeft = Math.floor(num);
for (var i = 0; nLeft > 0; i ++ )
{
if (nLeft % 1000 > 0)
{
if (i != 0)
cWords = ConvertToHundreds(nLeft) + "" + aUnits + "" + cWords;
else
cWords = ConvertToHundreds(nLeft) + "" + cWords;
}
nLeft = Math.floor(nLeft / 1000);
}
num = Math.round(num * 100) % 100;
if (num > 0)
cWords += ConvertToHundreds(num)+ " Cent";

return cWords;
}

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten