Algorithmus, wandelt numerische Betrag in englischen Wörtern
Was ist der effizienteste Weg, um konvertieren von numerischen Betrag in englischen Wörtern
z.B. 12 zwölf
127, hundert-zwanzig-sieben
Oder in Englisch hundert und zwanzig-sieben. 🙂
das "und" ist falsch, wenn Sie sprechen korrektes Englisch. "Und" ist für Bruch-Teile.
Im britischen Englisch, wenn eine Zahl enthält eine kleinere Anzahl von und schließt sich Ihnen an. Wie im Jahr 2010 - zwei tausend und zehn. Eine andere variation ist, in der Währung, wenn £1.20 ist eine zwanzig Pfund oder ein Pfund-und-zwanzig pence. Wenn Ihr langweilen Sie betrachten konnte english-at-home.com/speaking/...
sorry, wollte nicht verstehen, die Unterscheidung, die Sie machen.
das "und" ist falsch, wenn Sie sprechen korrektes Englisch. "Und" ist für Bruch-Teile.
Im britischen Englisch, wenn eine Zahl enthält eine kleinere Anzahl von und schließt sich Ihnen an. Wie im Jahr 2010 - zwei tausend und zehn. Eine andere variation ist, in der Währung, wenn £1.20 ist eine zwanzig Pfund oder ein Pfund-und-zwanzig pence. Wenn Ihr langweilen Sie betrachten konnte english-at-home.com/speaking/...
sorry, wollte nicht verstehen, die Unterscheidung, die Sie machen.
InformationsquelleAutor DuduAlul | 2010-07-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht lange dauern. Dies ist eine Implementierung, die in Java geschrieben.
http://snippets.dzone.com/posts/show/3685
Code
InformationsquelleAutor corsiKa
Dieser link bietet eine ausführliche Erklärung, was aussieht, um einen schönen Ansatz:
http://www.blackwasp.co.uk/NumberToWords.aspx
InformationsquelleAutor robhudson
Eine Möglichkeit dazu wäre die Verwendung von look-up-Tabellen. Es wäre etwas brute-force, aber einfache Einrichtung. Zum Beispiel könnten Sie haben die Worte für 0-99 in eine Tabelle, dann eine Tabelle für Dutzende, Hunderte, Tausende, etc. Einige einfache mathematische geben Sie den index des Wortes, die Sie benötigen, aus jeder Tabelle.
Ich Stimme mit Ihrer Einschätzung, aber ich habe den Begriff "brute-force" in meiner Beschreibung. Darüber hinaus gibt es andere Antworten, die für die gleiche Frage, dass die Verwendung einer look-up-table-Ansatz, einschließlich der akzeptierten Antworten. Ich bin mir nicht sicher, warum dein Kommentar gilt nur für meine Antwort.
InformationsquelleAutor nathan
Dies ist eine alte python-code auf meiner Festplatte. Es könnten bugs sein, aber es sollte zeigen, die grundlegende Idee:
InformationsquelleAutor Christian
Diese Lösung nicht versucht zu berücksichtigen, für die Leerzeichen, aber es ist ziemlich schnell.
InformationsquelleAutor David Gladfelter
Starten Sie durch lösen von 1-99, mit einer Liste von zahlen für 1-20, und dann 30, 40, ..., 90. Dann fügen Sie Hunderte zu bekommen 1-999. Verwenden Sie dann die routine zu geben, die Anzahl der jede Kraft von 1.000 für so hoch wie Sie wollen gehen (ich glaube die höchste standard-Nomenklatur für decillion, das ist 10^33).
Einen leichten Nachteil ist, dass es ein wenig schwierig zu Holen Sie sich die blanks rechts in allen Fällen, wenn Sie versuchen, Anfang und Ende, ohne ein übermaß leer. Die einfache Lösung ist, um ein Leerzeichen nach jedem Wort, und dann entfernen Sie das nachfolgende leere, wenn Sie fertig sind. Wenn Sie versuchen, um genauer zu sein beim Aufbau der Zeichenfolge, die Sie wahrscheinlich am Ende mit Leerzeichen oder überschüssige Leerzeichen.
InformationsquelleAutor supercat
.) eine Bibliothek, die alle zahlen & Positionen (z.B. 1 andere Schreibweise als 10, andere als 100 etc)
.) machen Sie eine Liste von Ausnahmen (z.B. 12) und ist sich bewusst, dass in Ihrem algorythm, die gleiche Ausnahme sind für 112, 1012 etc.
wenn Sie möchten, sogar mehr Geschwindigkeit, stellen Sie einen zwischengespeicherten Satz von zahlen, die Sie benötigen.
InformationsquelleAutor cRichter
Beachten Sie einige Regeln:
digit place
wie "dreitausend".Können Sie den Platz einer Zahl von mit Fußboden-division von ganzen zahlen: 532 /100 -> 5
InformationsquelleAutor nmichaels
Dies ist Teil der Common Lisp!
Hier ist, wie GNU CLISP tut es, und hier ist, wie CMUCL tut es (leichter zu Lesen, IMHO).
Tun, eine code Suche für "format-Millionen-Milliarden" werden sich viele von Ihnen.
InformationsquelleAutor Ken