javascript - Javascript中数字的精度浮点数如何工作?
问题描述
大家好,我正在处理有关天文计算javascript
的文件,因此我需要更高的精度。我对每一行都有很多操作,我希望结果更精确(逗号后也是十进制或二十进制)。
在 JavaScript 中,如果我不声明小数位数(例如使用),逗号后有.ToFixed(n)
多少个位置,语言在计算期间考虑?
例如:
var a= 1.123456789*3.5; // result 3.9320987615
var b= a/0.321;
var c= b*a;
// c => 48.16635722800571
会是结果吗? 就像对 javascript 的每个变量使用逗号后的所有小数一样做近似值?
为什么在其他问题中用户建议使用decimal.js
或其他库?
如果我的问题看起来很愚蠢,但对我来说很重要,我很抱歉。我希望你能帮助我。
对不起我的英语不好 !
解决方案
Javascript 使用 IEEE-754 双精度,这意味着它只计算大约 15 位小数精度的数字,而不是被截断。如果您需要更高的精度,则必须使用decimal.js
或其他类似的库。其他问题推荐decimal.js
或其他库是因为它很容易放入您的程序中,并且可以提供您想要的尽可能多的精度。
默认情况下未在计算机中实现它的原因是计算机计算到 20 位而不是 15 位需要更多的努力,因为计算机被构建为仅计算到 15 位十进制数字。如果您想了解更多信息,我建议您阅读Wikipedia 上的任意精度算术。
推荐阅读
- sql-server - 如何使用 Django 连接到 MsSQL 服务器
- javascript - 如何插入文本
作为使用 jquery 的标记属性的值? - python - base64的熊猫字符串列到十六进制
- javascript - Ag-grid 还是我们自己的用于过滤和排序的自定义表格?
- angular - 显示静态注入器错误而不是加载页面
- html - 如何在css中选择当前打开的链接?
- php - 在mysql数据库中插入“\”符号?
- ios - 客户凭证流程 - 获取访问令牌
- twitter-bootstrap - html 头中的 Nuxt 和 Bootstrap vue css
- sap-ase - Sybase ASE 可以处理多少行和多大的表