问题标签 [floating-point-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# - 如何“附加”有效数字以从浮点值加倍
目前我正在尝试匹配 C# 和 C++ 应用程序。在 C++ 方面,当有一个值时,说:
当我使用sscanf
:
x
将等于554.13269
,即它具有“附加”有效数字,即使它们可能四舍五入到相同的值。(我认为这个应用程序使用了一种不同的float
类型,它可以容纳超过 7 个有效数字。)
我不想改变 C++ 方面。我希望我单独的 C# 应用程序也能这样做。
例如,如果我有 float 23423.29
,我想将其转换为23423.289
,这是 a double
(因为在 C# 中,标准float
的有效数字不超过 7 个),然后将其double
转换为字符串。
我似乎找不到一种方法来做到这一点。有任何想法吗?还是我必须创建自己的函数或从 C# 端调用相同的 C++ 函数……?
c - 如何将浮点输入转换为整数并保持最大精度?
我必须使用一种算法,它需要一个整数矩阵作为输入。我拥有的输入是真正有价值的,因此我想在将输入传递给算法之前将其转换为整数。
我虽然将输入缩放一个大常数,然后将其四舍五入为整数。这看起来是一个很好的解决方案,但是如何决定使用一个好的常量,特别是因为浮点输入的范围可能因情况而异?也欢迎任何其他想法?
c# - 浮点运算歧义
可能重复:
为什么 C# 中的浮点运算不精确?
为什么浮点运算存在偏差?有什么具体原因吗?输出:160 139
java - 浮点精度:JDBC、double 和 DECIMAL,如何避免丢失?
我正在使用 JDBC 接口从 DB2 数据库中复制一些行。我担心的是:有些列被定义为 DECIMAL 15。在 DB2 内部,这些列存储为二进制编码的十进制。在 Java 中通过双精度变量复制这些可能会丢失一些精度。由于该程序将在银行中运行,因此这肯定是一个问题。
处理它的最佳方法是什么?
serialization - 序列化浮点数
我正在搜索几个论坛以获取有关如何序列化浮点数的一些想法,并且碰巧遇到了以下代码。
我不明白为什么我们需要这样做
frexp() 将返回一个介于 0.5(包括)和 1(不包括)之间的值。
例如: frexp() 返回 0.81
ldexp( 0.81, 24 ) --> 19.44 并且当分配给 unit_32 时,它将被截断。
我看不出这背后的逻辑。有人可以为我澄清一下吗?
floating-point - IEEE 24 位浮点数的最小正值是多少?
IEEE-754 32 位浮点数的最小正值是2^−149
16 位浮点数是2^-14
。如果 IEEE-754 标准化了 24 位浮点数,它的最小正值是多少?
对不起,如果这在某处明确记录,但我无法在搜索中找到它。
如果您想了解实用性,这将用于将四个不同精度的浮点值拟合到 64 位中,以便在内存不足的系统中使用。
c++ - /fp:strict 和 /fp:precise 之间的区别?
什么时候使用 fp:strict 而不是 fp:precise?如果我想要“更精确”的计算并避免舍入错误,使用前者会更好吗?使用其中任何一种的启发式方法是什么?
.net - 基于小数的复杂结构;一个好主意?
今晚我很想回家,使用 Mandelbrot/Julia 分形发生器。这是我之前在 C++ 中进行的一个项目,但这次我将在 C# 中试一试,这样我就可以更轻松地将其制作为 WinForms 应用程序,使用多线程生成图像等。
然而,我考虑使用但看起来可能最终会成为拐杖的一件事是内置的 Complex 结构。乍一看,看起来很棒;我需要的所有操作都内置到一个结构中。但是,仔细观察会发现该结构使用双精度数。双打只有 15-16 sig figs;他们的力量是他们的范围。我只对复平面上 (-2,-2) 到 (2,2) 的范围感兴趣,所以我对范围不感兴趣;精度。小数有 28 位有效数字。
因此问题;去这里的路是什么?
- 使用内置的 Complex 类型;毕竟这只是一个附带项目。
- 使用小数而不是双精度数滚动我自己的 DecimalComplex 类型。似乎是一条不错的“中间道路”;我需要的数学并不难(乘法和加法),它几乎可以使可用精度翻倍。
- 孤注一掷; 实现一个 BigDecimal,利用 BigInteger 并自己跟踪小数位,并将其用于 UberComplex 结构。IIRC 上次我搞砸这个时,我使用了类似的想法,但使用了无符号的 64 位长,这让我达到了一个缩放级别,如果整个集合以 360dpi 绘制,它需要一个大致区域的表面的太阳系。我可能会做得比这更好。
floating-point - Is this a visual representation of round-off errors in IEEE math
In Wolfram Alpha:
Is this how round off errors appear in solutions when subtraction operand orders of magnitude differ more than 2^24
(32-bit float) ?
Link: Equation Plot
Link: What Every Computer Scientist Should Know About Floating-Point Arithmetic
c++ - 在 C++ 中对浮点变量执行算术运算时是否总是需要使用浮点文字?
我看到很多 C++ 代码具有如下行:
这些.0f
文字之后的这些真的有必要吗?如果省略这些,您会失去数字准确性吗?
我认为只有当你有这样的一行时才需要它们:
你应该在哪里使用1.0f
,对吧?