Javascript数字到单词 - vigesimal
Javascript numbers to words - vigesimal
我想创建一个数字到单词转换器,例如 http://gwydir.demon.co.uk/jo/numbers/words/intro.htm
但是,我正在为使用vigesimal数字系统的外语执行此操作 - 以二十为单位计数。我想从 1-199 开始。
1-20 很容易,但之后它会改变。 20-39遵循"一对二十"(21),"二对二十"(22)的模式,直到"十八对二十"(38),"十九对二十"(39)。
40-99 和 120-199 仍然不同,因为它计入分数:"一和二二十"(41)、"二和二二十"(42)、"一和三二十"(61)、十和三二十(70)、十一和三二十(71)、"一和四二十"(81)、"六二十"(120)、"一和六二十"(121)、"九二十"(180)、"一和九二十"(181), 《一九九二十》(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"> </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 系统。
谢谢
以下函数应该让您了解如何解决此问题:
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 <= 119
的转换。21 <= number <= 39
也类似.
让我们通过一个例子来工作:考虑数字x
。
首先弄清楚数字中有多少个 100。我们这样做是这样的:x/100
因为整数除法会截断任何余数。这就是我们的第一部分:units[x/100] + " hundred"
现在让我们做剩下的,由 y=x%100
给出。有二十多y/20
。剩下的y%20
。所以字符串的其余部分是units[y%20] + " and " + units[y/20] + " " units[20]
.
这还不是 100% 完美的,因为它不能正确处理没有余数的数字,例如 640。但这些只是一些特殊情况,我相信你可以毫不费力地弄清楚。
- 当鼠标悬停在文本中的单词上时显示警报
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 拆分单词jquery
- 如何让程序检查所选单词中是否有按键
- 如何在悬停时流畅地更改单词
- EmberJS中支持单字母单词模型
- 字母计数:返回重复字母数最多的第一个单词
- 如何在Javascript中从字符串中提取某些单词
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 在javascript中查找单词
- 使用jQuery检查提交时添加到句子中的单词
- 如何在PHP中获取特定的字符串单词
- 停止较大单词的重叠
- 如何在没有单词的情况下从命令行运行Node.js程序'节点'
- 用于匹配不带字符的单词的正则表达式
- 从输入值中删除最后一个单词
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- Javascript数字到单词 - vigesimal
- Javascript数字到单词 - vigesimal 200-999