题目描述
求 a 和 b 相乘的值,a 和 b 可能是小数,需要注意结果的精度问题
function multiply(a, b) {
// 将数字转换为字符串
let stra = a.toString()
let strb = b.toString()
// 判断是否有小数点
// 如果没有则计0
// 如果有则计算小数点后的位数(stra.length - stra.indexOf('.') - 1)
let lenA = stra.indexOf('.') < 0 ? 0 : (stra.length - stra.indexOf('.') - 1)
let lenB = strb.indexOf('.') < 0 ? 0 : (strb.length - strb.indexOf('.') - 1)
// 取出两个数字之中小数点位数最多的位数作为四舍五入小数位数的数字。
let max = Math.max(lenA, lenB)
return parseFloat(a*b).toFixed(max)
}