2012-06-01 28 views
3

我想創建一個數字來話轉換器像這樣的http://gwydir.demon.co.uk/jo/numbers/words/intro.htm的Javascript號碼的話 - 二十進制

但是我做了一個使用二十進制的數字系統一門外語 - 計數二十幾歲。我想以1-199開始。

1-20很容易,但之後它會改變。 20-39遵循「一二十」(21),「二十二」(22),「十二八」(38),「十九二十」(39)的模式。因爲它以分數計:「一二二」(41),「二二二十」(42),「一二三」(61),「一二三十二」 ,十二三十(70),十一二三(71),一四二十(81),六六二十(120),一六二十(121),九二十180),'one and nine twenty'(181),'nineteen and nine twenty'(199)

100-119與英語相似:一百零一(101),一百零二(102),百十一(111),一百一十九(119)

這是我使用的輸入形式的HTML:

<table align=center> 
<tr><td> 
<form action="#" name="conv"> 
Enter number: 
<input type="text" name="numb" size="15"> 
<input type="button" value="Show number" onclick="getnum(document.conv.numb.value)"> 
</form> 
</td></tr> 
<tr><td align=center><span id="outp">&nbsp;</span></td></tr> 
</TABLE> 

這是JavaScript我對數多達二十個:

var units = new Array(21) 
units[0]="" 
units[1]="onen" 
units[2]="dew" 
units[3]="tri" 
units[4]="pajar" 
units[5]="pemp" 
units[6]="whegh" 
units[7]="seyth" 
units[8]="eth" 
units[9]="naw" 
units[10]="deg" 
units[11]="udnek" 
units[12]="dowdhek" 
units[13]="tredhek" 
units[14]="peswardhek" 
units[15]="pemthek" 
units[16]="whetek" 
units[17]="seytek" 
units[18]="etek" 
units[19]="nownsek" 
units[20]="ugens" 

我的問題是,我該如何開始創建的代碼,讓我到數字轉換成正確的話嗎?任何人都可以指出一些有用的例子嗎?我已經看到它爲英語所做的例子,但由於數字系統是如此不同,我不知道如何將其轉換爲vigesimal系統。

由於通過一個例子

+0

你的第一個輸入tage有一個m而不是n – Grezzo

+0

我做了類似的http://jsfiddle.net/HUXUA/,它可能有幫助(註釋和所有內容都用西班牙文,但代碼本身是自解釋的)編輯:大聲笑,有一些意見,以進一步把它轉換爲C#代碼,對不起,關於 – ajax333221

+0

http://jsfiddle.net/RichardTowers/M2jTe/26可能是一個開始。 – RichardTowers

回答

1

下面的函數應該給你一個想法如何處理這個:

function getnum(s){ 
    var n = parseInt(s); 

    if(1 <= n && n <= 20){ alert(units[n]); } 

    if((40 <= n && n <= 99) || (120 <= n && n <= 199)){ 
     var q = Math.floor(n/20); 
     var r = n % 20; 

     !r && (alert (units[q] + ' ' + units[20])); 

     r && (alert (units[r] + ' and ' + units[q] + ' ' + units[20]));  
    }  
} 

現在你應該能夠找出轉換爲100 <= number <= 11921 <= number <= 39也類似。

+0

謝謝,我在這裏問了一個新問題http://stackoverflow.com/questions/10861135/javascript-numbers-to-words-vigesimal-200-999如果你還有興趣。 – Bob

1

讓我們的工作:考慮數量x

首先計算出數字中有多少個100。我們這樣做:x/100因爲整數除法截斷任何餘數。所以這是我們的第一個細分市場:units[x/100] + " hundred"

現在讓我們來做一下y=x%100給出的餘數。有二十年代的y/20。還剩下y%20。所以字符串的其餘部分是units[y%20] + " and " + units[y/20] + " " units[20]

這不完全是完美的,因爲它沒有正確處理數字,沒有剩餘像640.但這些只是一些特殊情況,我相信你可以找出沒有任何麻煩。

+0

謝謝,我在這裏問了一個新問題http:// stackoverflow。com/questions/10861135/javascript-numbers-to-words-vigesimal-200-999如果你還有興趣。 – Bob

相關問題