![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 14.06.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jak dostosować do polskiego systemu liczbowego poniższy skrypt:
http://javascript.about.com/library/bltoword.htm // Convert numbers to words // copyright 25th July 2006, by Stephen Chapman http://javascript.about.com // permission to use this Javascript on your web page is granted // provided that all of the code (including this copyright notice) is // used exactly as shown (you can change the numbering system if you wish) // American Numbering System var th = ['','thousand','million', 'billion','trillion']; // uncomment this line for English Number System // var th = ['','thousand','million', 'milliard','billion']; var dg = ['zero','one','two','three','four', 'five','six','seven','eight','nine']; var tn = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen']; var tw = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; function toWords(s){s = s.toString(); s = s.replace(/[\, ]/g,''); if (s != parseFloat(s)) return 'not a number'; var x = s.indexOf('.'); if (x == -1) x = s.length; if (x > 15) return 'too big'; var n = s.split(''); var str = ''; var sk = 0; for (var i=0; i < x; i++) {if ((x-i)%3==2) {if (n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;} else if (n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if (n[i]!=0) {str += dg[n[i]] +' '; if ((x-i)%3==0) str += 'hundred ';sk=1;} if ((x-i)%3==1) {if (sk) str += th[(x-i-1)/3] + ' ';sk=0;}} if (x != s.length) {var y = s.length; str += 'point '; for (var i=x+1; i<y; i++) str += dg[n[i]] +' ';} return str.replace(/\s+/g,' ');} |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
tak mi się wydaje że prostszym rozwiązaniem było by tu napisanie własnego skryptu, gdyż modyfikacja tego mogła by zając o wiele dłużej. Najłatwiej jest sobie rozpisać te liczby(słowa różniące się od siebie).
czyli: -liczby od 0 do 19 -dziesiątki (20, 30...) -setki(100, 200) - tu już odbiega od angielskiego, a potem jest tylko gorzej gdybyś chciał przerabiać skrypt -odmiany tysięcy (1 tysiąc, 2 tysiące, 5 tysiecy) -odmiany milionów (1 milion, 2 miliony, 5 milionów) i tak dalej. To zależy od tego jeszcze jak wielkie liczby chcesz móc przyjmować. Jakby nie patrzeć dalsze nazwy mają takie same odmiany jak milion czyli 1-brak końcówki, 2-4 to końcówka y, 5-999 to ów Czasem należy samemu pogłówkować bo wątpię byś dał radę przerobić ten skrypt pod polskie liczby |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 02:37 |