问题标签 [precision]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 如何使用“%f”将双精度值填充到具有正确精度的字符串中
我正在尝试使用这样的方法填充具有双精度值的字符串sprintf
:
但精度被削减到小数点后六位。我需要大约 10 位小数来保证精度。
怎样才能做到这一点?
parsing - 如何从字符串中手动解析浮点数
当然大多数语言都有这方面的库函数,但假设我想自己做。
假设像在 C 或 Java 程序中一样给出浮点数('f' 或 'd' 后缀除外),例如“ 4.2e1
”、“ .42e2
”或简单的“ 42
”。一般来说,我们有小数点前的“整数部分”、小数点后的“小数部分”和“指数”。这三个都是整数。
查找和处理单个数字很容易,但是如何将它们组合成类型值float
或double
不丢失精度?
我正在考虑将整数部分乘以 10^ n,其中n是小数部分中的位数,然后将小数部分添加到整数部分并从指数中减去n 。例如,这实际上变成4.2e1
了42e0
。然后我可以使用该pow
函数计算 10^指数并将结果与新的整数部分相乘。问题是,这种方法是否能保证整个过程的最大精度?
对此有什么想法吗?
delphi - Delphi 中通过 writeln/readln 的实数精度
我的客户应用程序通过使用 writeln 和 readln 的文本文件导出和导入了很多 real 类型的变量。我试图增加所写字段的宽度,因此代码如下所示:
当我导出然后再次导入和导出并比较文件时,我得到最后两位数的差异,例如(此处的实际位数可能不正确,但你明白了):
这实际上对应用程序产生了影响,因此客户想知道我能做些什么。现在我不确定是否只有写入/读取才能做到这一点,但我想在我再次深入讨论堆栈之前我会提出一个快速的问题。我需要对此进行二进制处理吗?
这不是一个处理货币或其他东西的应用程序,我只是在文件中写入和读取值。我知道浮点有时有点奇怪,我认为其中一个例程(writeln/readln)可能会发生一些有趣的事情。
c# - C# 中的双精度数比浮点数快吗?
我正在编写一个应用程序,它读取大型浮点数组并使用它们执行一些简单的操作。我正在使用浮点数,因为我认为它会比双精度数更快,但是在做了一些研究之后,我发现这个话题有些混乱。谁能详细说明这一点?
javascript - 2.9999999999999999 >> .5?
我听说您可以将数字右移 0.5 而不是使用 Math.floor()。我决定检查它的限制以确保它是合适的替代品,因此我检查了以下值并在 Google Chrome 中得到以下结果:
经过一番摆弄,我发现在 Chrome 和 Firefox 中,当右移 0.5 时,将产生 2 的最大可能值为 2.9999999999999997779553950749686919152736663818359374999999¯(重复 9)。IE中的数字是2.9999999999999997779¯。
我的问题是:数字 .0000000000000007779553950749686919152736663818359374 的意义是什么?这是一个非常奇怪的数字,它真的激起了我的好奇心。
我一直在尝试找到答案或至少某种模式,但我认为我的问题在于我真的不了解按位运算。我原则上理解这个想法,但是将位序列移动 0.5 对我来说根本没有任何意义。任何帮助表示赞赏。
为了记录,奇怪的数字序列随着 2^x 的变化而变化。以下数字中仍能正确截断的最高可能值:
floating-point - 为什么我看到一个双变量初始化为 21.4 之类的某个值作为 21.399999618530273?
在调试器中,这些显示为11.631000000000000
和21.399999618530273
。
我怎样才能避免这种情况?
.net - double in .net
If I have the following code (this was written in .NET)
Why doesn't i
equal 0.3
?
Any ideas?
math - Lua 的标准(或最受支持的)大数(任意精度)库是什么?
我正在处理无法四舍五入的大量数字。使用 Lua 的标准数学库,似乎没有方便的方法来保持超出某些内部限制的精度。我还看到有几个库可以加载以处理大数字:
- http://oss.digirati.com.br/luabignum/
- http://www.tc.umn.edu/~ringx004/mapm-main.html
- http://lua-users.org/lists/lua-l/2002-02/msg00312.html(可能与#2相同)
- http://www.gammon.com.au/scripts/doc.php?general=lua_bc(但我找不到任何来源)
此外,如果建立了绑定,可以从 Lua 调用 C中的许多库。
您对这些库中的一个或多个有任何经验吗?
java - 在 Java 中使用 double 保持精度
上面的代码打印:
我如何才能让它打印(或能够将其用作)11.4?
javascript - 如何在 JavaScript 中为 Number.toFixed 编写原型?
我需要使用 JavaScript 将十进制数字四舍五入到六位,但我需要考虑旧版浏览器,所以我不能依赖 Number.toFixed
toExponential、toFixed 和 toPrecision 的一大亮点是它们是相当现代的构造,直到 Firefox 1.5 版才在 Mozilla 中得到支持(尽管 IE 从 5.5 版开始支持这些方法)。虽然使用这些方法大多是安全的,但旧版浏览器会损坏,因此如果您正在编写公共程序,建议您提供自己的原型,以便为旧版浏览器的这些方法提供功能。
我正在考虑使用类似的东西
向旧浏览器提供原型的最佳方法是什么?