2012-06-01 12 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

相关问题