题解 | #乘法#

乘法

https://www.nowcoder.com/practice/6429776e4630435cbc3eeb36bdf41f83

思路:首先将两个数转换为字符串,然后分别获取两个数的小数点后的位数,并取最精确的小数位数,再将乘法结果指定小数点后的数字位数。

function multiply(a, b) 
{
    //先将两个数转换成字符串
    let str1=a.toString()
    let str2=b.toString()
    //获取小数点后的位数
    let lenA=(str1.indexOf('.')==-1)?0:(str1.length-1-str1.indexOf('.'))
    let lenB=(str2.indexOf('.')==-1)?0:(str2.length-1-str2.indexOf('.'))
    //取最精确的小数位数
    let len=Math.max(lenA,lenB)
    //把数字指定小数点后的数字位数
    return (a*b).toFixed(len)
}

总结:由于乘法涉及到精度问题,故需要对数字进行处理。求小数点后的位数可以先将数字转换为字符串,然后使用indexOf查找.所在的位置,如果没找到就是0,反之就根据字符串长度以及.所在的位置计算小数位,一定要取两者中最精确的那一位,最后使用n.toFixed(len)方法,指定n的小数位数为len位。

#乘法云#
前端js面试 文章被收录于专栏

前端js面试,帮助你更好的理解js。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务