乘以两个不同的值
Multiiplication in two different Values
本文关键字:两个 更新时间:2023-09-26
我在JavaScript的工作场景中使用了以下代码片段。
var t = 0.000029411764705882354 * 34000;
T 的结果是 1 。 我想得到精确的乘法结果而不是 1 作为
0.9999999999972.
首先,计算结果不是 1。表达式:
29411764705882354 * 34
(去掉乘以十的幂)实际上给你:
1000000000000000036
最重要的是,除非您具有无限的存储能力,否则没有编码方案可以表示每个数字。你需要习惯这样一个事实,即浮点数通常是你要求的近似值 - 有些数字可以准确地表示,但在所有实数的域中,它们形成了一个消失的小部分:-)
话虽如此,有几种方法可以解决它。
首先,您可以使用 bignum 类型的库(例如 C 中的 MPIR)为您提供任意(不是无限)精度算术。除了非理性之外,这将处理大多数情况。
其次,您可以继续使用浮点数,但请注意它不精确,您可能需要打印出四舍五入的数字。例如,0.9999999999972
四舍五入到 <=11 个十进制(不重要)数字,则得到 1
。
相关文章:
- JQuery合并了keyup和focusout两个函数
- 如何使用 node.js 比较两个 json 数组
- 为复选框javascript指定两个值
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 单击时切换两个图像
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 基于两个条件退出While循环
- 如何在这里将两个值最低的数字相加
- 组合两个javascript函数
- 如何使用offer/answer交换来自两个对等连接的流
- jsf中两个字符串的颜色代码差异
- 加载两个具有相同父密钥名称的json文件
- 在Qualtrics中,介绍如何动态连接两个滑块
- 访问$.ajax()函数中的两个不同数组
- 如何在three.js上添加两个向量
- 如何在datetimepicker中使用两个验证器
- 如何在javascript中获取两个日期之间的周六和周日的日期
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 这两个关于 JavaScript 作用域链的例子有什么区别?