[toc]
数值处理相关
保留小数点后N位
/**
* @param { number: Number } 要处理的数
* @param { n: Number } 保留的小数点位数
*/
function afterDecimalPoint(number, n){
if(typeof number === 'number') {
const digit = Math.pow(10, n);
/** 严格的四舍五入 */
number = Math.round(number * digit)/digit;
/** 非严格的四舍五入(具体查看 笔记 => javascript toFixed说明) */
number = number.toFixed(2)
return number;
}
console.error('请输入Number类型');
return false;
}
将中文数字转为数字
function zhToNumber(str) {
var zhNumber = { '零': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9 }
var zhLevel = { '十': 10, '百': 100, '千': 1000, '万': 10000, '亿': 100000000 }
var count = 0
/* 亿或万前面的一段数字 */
var tempNum = 0
var len = str.length
for (let i = 0; i < len; i++) {
var current = str[i]
if(current === '零') continue
/* 只有亿和万前面可以包含许多级数字,所以以它们两个来分段划分数字 */
if(current === '万' || current === '亿') {
/* 把前面一段数字乘以对应的单位 */
count += tempNum * zhLevel[current]
tempNum = 0
} else {
var next = str[i+1]
if (next && next !== '万' && next !== '亿') {
tempNum += zhNumber[current] * zhLevel[next]
i++
} else {
/* 下一位不存在或是万或亿的情况 */
tempNum += zhNumber[current]
}
}
}
return count + temp
}
zhToNumber('四十二亿九千四百九十六万七千二百零九')