每日一道大厂面试题 - 11

每日一道大厂面试题 - 11

每日一题

阿里,腾讯,百度,美团,头条等大厂技术题目中选取有价值得题目,对题目考察目标进行分析,并给出参考答案。每日一题,在不知不觉中进步,欢迎留言区打卡 !

问题

如何实现两金额数据相加(最多小数点两位)?

出题人

阿里巴巴出题专家:御术/蚂蚁金服数据可视化高级技术专家。

思路:

其实问题并不难,就是考察候选人对 JavaScript 数据运算上的认知以及考虑问题的缜密程度,有很多坑,可以用在笔试题,如果用在面试,回答过程中还可以随机加入有很多计算机基础的延伸。

回到这个问题,由于直接浮点相与加会失精,所以要转整数;(可以插入问遇到过吗?是否可以举个例子?)。

转整数是第一个坑,虽然只有两位可以通过乘以100转整数,但由于乘以一百和除以一百都会出现浮点数的运算,所以也会失精,还是要通过字符串来转;(可以插入问字符串转整数有几种方式?)字符串转整是第二个坑,因为最后要对齐计算,如果没考虑周全先toFixed(2),对于只有一位小数点数据进入计算就会错误;转整数后的计算是个加分点,很多同学往往就是直接算了,如果可以考虑大数计算的场景,恭喜同学进入隐藏关卡,这就会涉及如何有效循环、遍历、算法复杂度的问题。

推荐阅读

1. 

2. 

3. 

4. 

5. 

6. 

7. 

8. 

今日一题选自热门GitHub项目interview_internal_reference。点击「阅读原文」即可 此star 项目。同样关注订阅号「Web项目聚集地」获得每日面试题更新。

每日一道大厂面试题 - 11