当前位置: 首页 > 面试题库 >

写一个把数字转成中文的方法,例如:101转成一百零一

仲绍晖
2023-03-14
本文向大家介绍写一个把数字转成中文的方法,例如:101转成一百零一相关面试题,主要包含被问及写一个把数字转成中文的方法,例如:101转成一百零一时的应答技巧和注意事项,需要的朋友参考一下
const digitChar = ['', ...'一二三四五六七八九']
const posChar = ['', ...'十百千万   亿']
const placeholder = '零'

function toChineseNumeralUnder万(digits) {
    let revDigits = digits.split('').reverse()
    let result = ''
    for (let pos = 0; pos < revDigits.length; pos++) {
        const digit = Number(revDigits[pos])
        if (digit)
            { result = posChar[pos] + result }
        if (digit !== 1 || pos !== 1)
            { result = digitChar[digit] + result }
        if (!digit && pos && result && !result.startsWith(placeholder))
            { result = placeholder + result }
    }
    return result
}

function toChineseNumeralUnder亿(digits) {
    let highPart = toChineseNumeralUnder万(digits.slice(-8, -4))
    if (highPart)
        { highPart += posChar[4] }
    let lowPart = toChineseNumeralUnder万(digits.slice(-4))
    return highPart + lowPart
}

function toChineseNumeral(digits) {
    let fragment = ''
    const result = []
    for (const digit of digits.split('').reverse()) {
        if (fragment.length === 8) {
            result.unshift(toChineseNumeralUnder亿(fragment))
            fragment = ''
        }
        fragment = digit + fragment
    }
    result.unshift(toChineseNumeralUnder亿(fragment))
    if (result[0].startsWith(placeholder))
        { result[0] = result[0].slice(1) }
    return result.join(posChar[8]) || placeholder
}
toChineseNumeral('0')
// => '零'
toChineseNumeral('101')
// => '一百零一'
toChineseNumeral('1000001')
// => '一百万零一'
toChineseNumeral('123456708')
// => '一亿二千三百四十五万六千七百零八'
toChineseNumeral('3274823947329471041041234567080')
// => '三百二十七万四千八百二十三亿九千四百七十三万二千九百四十七亿一千零四十一万零四百一十二亿三千四百五十六万七千零八十'

函数名很弱智,不要在意(

 类似资料:
  • 本文向大家介绍写一个方法把科学计数法转换成数字或者字符串相关面试题,主要包含被问及写一个方法把科学计数法转换成数字或者字符串时的应答技巧和注意事项,需要的朋友参考一下 function c(a) { return a.replace(/^(\d+)(?:.(\d+))*eE(\d+)/,(_,a,a1,p,n)=>{ a1=a1||'' if(p==='-'&&n>0) { return '0.'

  • 本文向大家介绍写一个方法把对象和字符串互转相关面试题,主要包含被问及写一个方法把对象和字符串互转时的应答技巧和注意事项,需要的朋友参考一下 对于对象里面如果只有普通的像int、string、bool类型当然可以直接使用JSON.stringify和JSON.parse()但是当里面有函数方法的时候就会被忽略,这时候需要用到序列化函数去处理。

  • 本文向大家介绍写一个方法将汉字转换成拼音首字母相关面试题,主要包含被问及写一个方法将汉字转换成拼音首字母时的应答技巧和注意事项,需要的朋友参考一下 Demo from: https://github.com/superbiger/pinyin4js

  • 本文向大家介绍JavaScript将数字转换成大写中文的方法,包括了JavaScript将数字转换成大写中文的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript将数字转换成大写中文的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。

  • 本文向大家介绍写一个方法把下划线命名转成大驼峰命名相关面试题,主要包含被问及写一个方法把下划线命名转成大驼峰命名时的应答技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍Python实现把数字转换成中文,包括了Python实现把数字转换成中文的使用技巧和注意事项,需要的朋友参考一下 周末在家,写了个小程序,用于将阿拉伯数字转换化大写中文。程序没经过任何优化,出没经过详细的测试,挂到网上,方便将来有需要的时候直接拿来用。