String 数字到字符串-如何将150变为;一百五十“;

String 数字到字符串-如何将150变为;一百五十“;,string,algorithm,numbers,String,Algorithm,Numbers,只是想知道是否有任何库可以轻松地将数字转换为javascript、jquery、php、python等的字符串表示形式 我需要把1210变成“一千二百一十” 这个过程有名字吗?听起来像pynum2word可以帮助: 具体来说,to_基数方法 在其他语言中,我会寻找“数字到单词”的Javascript解决方案。支持从负无穷大到无穷大的所有整数: var GetWord; (function(){ GetWord = function (number) {//number must be a

只是想知道是否有任何库可以轻松地将数字转换为javascript、jquery、php、python等的字符串表示形式

我需要把1210变成“一千二百一十”


这个过程有名字吗?

听起来像pynum2word可以帮助:

具体来说,to_基数方法


在其他语言中,我会寻找“数字到单词”的Javascript解决方案。支持从负无穷大到无穷大的所有整数:

var GetWord;
(function(){
    GetWord = function (number) {//number must be an integer
        return (function f(number){
            var output = [];
            var is_negative = number < 0;
            number = Math.abs(number);

            var chunks = [];
            for (var x = count_names.length - 1, limit = 0; x >= limit; --x) {
                var chunk = Math.floor(number / counts[x]);
                if (chunk !== 0) {
                    output.push(GetWord(chunk) + " " + count_names[x]);
                }
                chunks[x] = chunk;
                number -= chunk * counts[x];
            }
            if (number !== 0) {
                if (number <= 19) {
                    output.push(number_names[number]);
                } else {
                    var tens = Math.floor(number / 10);
                    number -= tens * 10;
                    if (number === 0) {
                        output.push(number_names2[tens - 2]);
                    } else {
                        output.push(number_names2[tens - 2] + " " + GetWord(number));
                    }
                }
            }
            if (output.length > 2) {
                for (var x = 0, limit = output.length - 1; x < limit; ++x) {
                    output[x] += ","
                }
            }
            if (output.length > 1) {
                var ubound = output.length - 1;
                output[output.length] = output[ubound];
                output[ubound] = "and";
            }
            if (is_negative) {
                output.splice(0, 0, "negative");
            } 
            return output;
        })(number).join(" ");
    };
    var number_names = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"];
    var number_names2 = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety", "hundred"]
    var count_names = ["hundred", "thousand", "million", "billion", "trillion", "quadrillion", "quintillion", "sextillion", "septillion", "octillion", "nonillion", "decillion", "undecillion", "duodecillion", "tredecillion", "quattuordecillion", "quindecillion", "sexdecillion", "septendecillion", "octodecillion", "novemdecillion", "vigintillion"];
    var counts = [100];
    for (var x = counts.length, limit = count_names.length; x < limit; ++x) {
       counts.push(Math.pow(1000, x));
    }
})();
var-GetWord;
(功能(){
GetWord=函数(number){//number必须是整数
返回(函数f(编号){
var输出=[];
var为负=数值<0;
数字=数学abs(数字);
var chunks=[];
对于(var x=count_names.length-1,limit=0;x>=limit;--x){
var chunk=数学地板(数量/计数[x]);
如果(块!==0){
push(GetWord(chunk)+“count_name[x]);
}
块[x]=块;
数字-=块*计数[x];
}
如果(数字!==0){
如果(2号){
对于(var x=0,limit=output.length-1;x1){
var ubound=output.length-1;
输出[output.length]=输出[ubound];
输出[ubound]=“和”;
}
如果(是负的){
输出。拼接(0,0,“负”);
} 
返回输出;
})(编号)。加入(“”);
};
变量编号\名称=[“零”、“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“十一”、“十二”、“十三”、“十四”、“十五”、“十六”、“十七”、“十八”、“十九”];
变量编号2=[“二十”、“三十”、“四十”、“五十”、“六十”、“七十”、“八十”、“九十”、“一百”]
var count_name=[“百”、“千”、“百万”、“十亿”、“万亿”、“千万”、“五百万”、“六百万”、“七百万”、“八百万”、“诺百万”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几十亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几亿”、“十几几亿”、“十几亿”、“四分亿”、“十几亿”、“十几亿”、“十几几亿”、“四分亿”、“十几亿”、“十几亿”、“十几亿”、“;
风险值计数=[100];
对于(变量x=counts.length,limit=count\u names.length;x
用法:

GetWord(1210);
给出
一千、二百和十个

GetWord(2147483647);
给出了
二十亿、一亿四千七百万、四十八万三千六百四十七个

GetWord(-123876124);
给出
负一亿二千三百八十七万六千一百二十四


如果您需要使用caps,只需将这些数组模板更改为“capped”形式。

算法拔掉()一书很好地解决了这个问题。