gpt4 book ai didi

javascript - 如何在 JavaScript 计算器中处理 float ?

转载 作者:行者123 更新时间:2023-12-01 00:36:44 25 4
gpt4 key购买 nike

为什么这不是这些优秀文章的重复?

虽然下面评论中链接的两篇文章非常出色,但我正在专门寻找可以帮助我在原生 JS 中解决此问题的信息。我知道 JS 不应该是复杂数学的首选,但考虑到这个计算器在浏览器中运行的限制,我决定使用它。

背景

我正在尝试使用 TypeScript 制作一个计算器,无需任何库(如 Big.js),并且不在计算器的内部逻辑中使用字符串连接。

示例

当用户想要输入数字 8.5 时:

  • 按下 8 键
  • 按下小数键
  • 按下 5 键

从数学上讲,我使用以下代码片段在显示屏中创建了这个数字:

8 + 5 * 0.1

这是可行的,但如果我继续向下小数位,我会遇到一些意想不到的事情:

8.5 + 5 * 0.01 // 8.55
8.55 + 5 * 0.001 // 8.555000000000001

问题

在不将数字转换为字符串的情况下处理此问题的最佳方法是什么?是否有一种智能方法可以对计算器的精度施加限制,使其仅支持精确到小数点后的位数?

感谢您的帮助!

最佳答案

使用.toFixed(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

.toPrecision(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision根据您的需要。

请注意,您不需要一直转换数字。唯一需要转换的地方是最终输出到 View 。在这种情况下,我们甚至可以将其保留为字符串格式。

这是对“如何管理”问题的答案(如描述中所示)。关于“为什么我们会得到这样的结果” - 第一条评论 provides很好的答案。

关于javascript - 如何在 JavaScript 计算器中处理 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58068508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com