Skip to content

Instantly share code, notes, and snippets.

@mogita
Last active August 28, 2017 02:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mogita/44c3183258d0d112f5f83597f4dd4061 to your computer and use it in GitHub Desktop.
Save mogita/44c3183258d0d112f5f83597f4dd4061 to your computer and use it in GitHub Desktop.
/*
* 将大数字转换为粗精度的汉字单位数字,以缩短字符串显示长度
* number <Number> 要转换的数字
* separator <String> 数字和单位之间的分隔字符,默认为空格
*
* return <String> 转换后的字符串
*/
export default {
toDelimitedString: (number, separator = ' ', decimal = 1) => {
let retStr = ''
let sign = (number >= 0) ? '' : '-'
number = Math.abs(number)
if (number >= 10e19) {
retStr = parseFloat((number / 10e19).toFixed(decimal)) + separator + '垓'
} else if (number >= 10e18) {
retStr = parseFloat((number / 10e18).toFixed(decimal)) + separator + '千京'
} else if (number >= 10e17) {
retStr = parseFloat((number / 10e17).toFixed(decimal)) + separator + '百京'
} else if (number >= 10e15) {
retStr = parseFloat((number / 10e15).toFixed(decimal)) + separator + '京'
} else if (number >= 10e14) {
retStr = parseFloat((number / 10e14).toFixed(decimal)) + separator + '千兆'
} else if (number >= 10e13) {
retStr = parseFloat((number / 10e13).toFixed(decimal)) + separator + '百兆'
} else if (number >= 10e11) {
retStr = parseFloat((number / 10e11).toFixed(decimal)) + separator + '兆'
} else if (number >= 10e10) {
retStr = parseFloat((number / 10e10).toFixed(decimal)) + separator + '千亿'
} else if (number >= 10e9) {
retStr = parseFloat((number / 10e9).toFixed(decimal)) + separator + '百亿'
} else if (number >= 10e7) {
retStr = parseFloat((number / 10e7).toFixed(decimal)) + separator + '亿'
} else if (number >= 10e6) {
retStr = parseFloat((number / 10e6).toFixed(decimal)) + separator + '千万'
} else if (number >= 10e3) {
retStr = parseFloat((number / 10e3).toFixed(decimal)) + separator + '万'
} else {
retStr = number.toString()
}
return sign + retStr
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment