~
~
function plus(a, b) {
// 数字转字符
a = String(a);
b = String(b);
// 按 . 分割成数组
var arr = a.split('.')
var brr = b.split('.')
// 整数部分正常相加
var rezheng = Number(arr[0]) + Number(brr[0])
// 取小数部分
var ax = (arr.length == 1) ? '0' : arr[1]
var bx = (brr.length == 1) ? '0' : brr[1]
// 较短的小数位数后面+0,变成相同位数
// 如 5 +12 => 50+12 (相当于0.50+0.12)
var axl = ax.length, bxl = bx.length;
var a_b_l = axl - bxl;
var maxl = axl;
if (a_b_l > 0) {
for (var i = 0; i < a_b_l; i++) {
bx += '0'
}
}
if (a_b_l < 0) {
maxl = bxl
a_b_l = a_b_l * -1
for (var i = 0; i < a_b_l; i++) {
ax += '0'
}
}
//小数部分相加
var rexiao = Number(ax) + Number(bx)
// 如果小数相加进位了,加到整数上
// 如 9+8 =17 ; 0.9+0.8 => 1.7
if (String(rexiao).length > maxl) {
rexiao = String(rexiao).slice(maxl * -1)
rezheng = rezheng + 1
}
// 用小数点连接整数和小数,并返回
return Number(rezheng + '.' + rexiao)
}
~~