Javascript数字到单词 - vigesimal 200-999
Javascript numbers to words - vigesimal 200-999
我已经成功地为1-199构建了一个数字到单词转换器,用于使用vigesimal数字系统的外语,以二十为单位计算。我现在想添加 200-999。
这是我到目前为止所拥有的。.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"
function getnum(s){
var n = parseInt(s);
if( 1 <= n && n <= 20 ){ alert(units[n]); }
if( 21 <= n && n <= 39 ){
var r = Math.floor(n - 20);
r && (alert (units[r] + ' warn ' + units[20]));
}
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] + ' ha ' + units[q] + ' ' + units[20]));
}
if( 100 <= n && n <= 100 ){ alert('cans'); }
if( 101 <= n && n <= 119 ){
var r = Math.floor(n - 100);
r && (alert ('cans ha ' + units[r]));
}
}
200-999 的问题在于,我认为我需要在每一百个中指定单独的规则——例如在 200 年代内,200-220 是"二百零 x",但 221-299 是"二百一二十"到"二百一十九和四二十",使用与 21-99 相同的 vigesimal 系统。如何扩展我已经拥有的代码以允许我添加 200-999?
这些是数百人的词 - 由于例外"tri hans",它需要以这种方式完成(除非有更好的方法来解释它)
var hundreds = new Array(11)
hundreds[0]=""
hundreds[1]="cans"
hundreds[2]="dew cans"
hundreds[3]="tri hans"
hundreds[4]="pajar cans"
hundreds[5]="pemp cans"
hundreds[6]="whegh cans"
hundreds[7]="seyth cans"
hundreds[8]="eth cans"
hundreds[9]="naw cans"
hundreds[10]="mil"
谢谢
也许,这可能会有所帮助 ->
这个是英语的 ->你只需要改变英语的单词
var num = "zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen".split(" ");
var tens = "twenty thirty forty fifty sixty seventy eighty ninety".split(" ");
function number2words(n){
if (n < 20) return num[n];
var digit = n%10;
if (n < 100) return tens[~~(n/10)-2] + (digit? "-" + num[digit]: "");
if (n < 1000) return num[~~(n/100)] +" hundred" + (n%100 == 0? "": " and " + number2words(n%100));
return number2words(~~(n/1000)) + " thousand" + (n%1000 != 0? " " + number2words(n%1000): "");
}
希望有帮助,兄弟
相关文章:
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 如何显示字符串中最多 200 个字符
- Dojo XHR将200 OK视为错误
- Regex用于年龄验证,仅使用Javascript接受0-200岁之间的年龄
- 为什么一个空的200会在jQuery中创建一个失败
- 成功ajax:如果是200状态代码,则运行函数else另一个函数
- 运行函数ifsuccess($.ajax)有200个状态代码
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- IE9 XMLHTTPRequest请求正文不完整,但readyState=4 statuscode=200
- AngularJS$http返回200正常,但失败了
- 检测价格是否高于或低于200.00,然后设置(此)表格行的样式
- php中的函数或介于-200和200之间但不为零的数字
- Pingfederate opentoken模块CORS请求返回302,而不是200
- RegEx模式匹配101-999
- 如果statusCode不是200,那么从http调用返回什么类型的错误对象
- Internet Explorer:可以't访问IFrame内容,除非状态代码为200
- 获得readyState为4和状态200加上状态文本“0”;OK”;而成功函数仍然没有;我没有接到电话
- xmlHttp.status==200从来都不是真的
- 如何使用javascript将文本框中的值限制为1-999之间的值范围
- Javascript数字到单词 - vigesimal 200-999