日 | 一 | 二 | 三 | 四 | 五 | 六 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
[复位日记]
网站统计
·今日访问 : 9
·页面点击 : 11
·当前在线 : 4
2023年12月30日 星期六[阅读 157]
用JavaScript写一个普通级别的计算器会不会很难?答案是否定的。确实,很容易。
一般的思路是,将用户的输入弄成字符串计算式子,然后,用 eval 将式子作为函数内容执行,就得出结果。如果认为 eval 函数不安全,那可以用 new Function 替代,相对来说没啥问题。
不过会有一些问题要处理:
- 基于长数字串的排版问题
- 浮点数的计算精准度问题
排版问题容易,主要是通过CSS自动折行便好。
浮点数运算是JS的硬伤:由于内部机制问题,浮点数运算过程中底层将十进制转换为二进制再进行运算,期间可能出现转换不完美的情形,故而,计算的精准度会有偏差。一个经典例子就是 4.2*6,JS的运算会得出:
25.200000000000003
官方推荐的解决方案是用 toFixed() 处理,比如 toFixed(2),计算结果取小数点后两位数。
发表评论: