下面是一个转换函数,C++的,很著名的算法,你只要在"圆角分"那里处理一下就可以了。static string *c_num = ({"零","一","二","三","四","五","六","七","八","九","十"});static string *c_digit = ({ "零","十","百","千","万","亿","兆" });string chinese_number(int i)
{
if (i < 0)
return "负" + chinese_number(-i);
if (i < 11)
return c_num[i];
if (i < 20)
return c_digit[1] + c_num[i - 10];
if (i < 100) {
if (i % 10)
return c_num[i / 10] + c_digit[1] + c_num[i % 10];
else
return c_num[i / 10] + c_digit[1];
}
if (i < 1000) {
if (i % 100 == 0)
return c_num[i / 100] + c_digit[2];
else if (i % 100 < 10)
return c_num[i / 100] + c_digit[2] +
c_num[0] + chinese_number(i % 100);
else if (i % 100 < 10)
return c_num[i / 100] + c_digit[2] +
c_num[1] + chinese_number(i % 100);
else
return c_num[i / 100] + c_digit[2] + 
chinese_number(i % 100);
}
if (i < 10000) {
if (i % 1000 == 0)
return c_num[i / 1000] + c_digit[3];
else if (i % 1000 < 100)
return c_num[i / 1000] + c_digit[3] +
c_num[0] + chinese_number(i % 1000);
else 
return c_num[i / 1000] + c_digit[3] +
chinese_number(i % 1000);
}
if (i < 100000000) {
if (i % 10000 == 0)
return chinese_number(i / 10000) + c_digit[4];
else if (i % 10000 < 1000)
return chinese_number(i / 10000) + c_digit[4] +
c_num[0] + chinese_number(i % 10000);
else
return chinese_number(i / 10000) + c_digit[4] +
chinese_number(i % 10000);
}
if (i < 1000000000000) {
if (i % 100000000 == 0)
return chinese_number(i / 100000000) + c_digit[5];
else if (i % 100000000 < 1000000)
return chinese_number(i / 100000000) + c_digit[5] +
c_num[0] + chinese_number(i % 100000000);
else 
return chinese_number(i / 100000000) + c_digit[5] +
chinese_number(i % 100000000);
}
if (i % 1000000000000 == 0)
return chinese_number(i / 1000000000000) + c_digit[6];
else if (i % 1000000000000 < 100000000)
return chinese_number(i / 1000000000000) + c_digit[6] +
c_num[0] + chinese_number(i % 1000000000000);
else
return chinese_number(i / 1000000000000) + c_digit[6] +
chinese_number(i % 1000000000000);
}

解决方案 »

  1.   

    yourvalue="123.1234"
    reg=/([0-9]+).([0-9]+)/;
    var tmp=yourvalue.match(reg);
    alert(tmp[1]);//temp[1]="123"
    alert(tmp[2]);//temp[2]="1234" temp[0]=yourvalue先分离出来两个部分,然后结合上面给出的程序就可以了。但是我有一个建议,就是用上面程序之前,先计算一下字符的长度,这样便于计算中文称法的名称,比如“万”,“亿”等分位。
    实际上就是查表而已。
      

  2.   

    ppboy(笑谈)兄,多谢
    可不可以在一个Beans里实现上述算法呢,如递归调用方法本身,
    zosatapo()的建议也很好,本来我也这样打算的大家有没有现成的例子“借鉴一下“啊 呵呵