问题标签 [floating-point]

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.

0 投票
9 回答
2551 浏览

c++ - 浮点值在发布和调试版本中表现不同

当我在发布模式和调试模式下编译它时,我的应用程序会生成不同的浮点值。我发现的唯一原因是我保存了一个二进制跟踪日志,而来自发布版本的日志与调试版本略有不同,看起来 32 位浮点值的底部两位相差约 1/2的案例。

您会认为这种“差异”是一个错误,还是会出现这种差异。这是编译器错误还是内部库错误。

例如:

问题与 X360 编译器有关。

0 投票
12 回答
18097 浏览

c# - 测试浮点数是否为整数

此代码有效(C# 3)

  1. 有一个更好的方法吗?
  2. 出于无关的原因,我想避免双重演员;除了这个还有什么好的方法吗?(即使它们不是那么好)

注意:有几个人指出了(重要的)一点,即 == 在重新调整浮点时经常会出现问题。在这种情况下,我希望值在 0 到几百之间,并且它们应该是整数(非整数是错误),所以如果这些点“不应该”对我来说是个问题。

0 投票
6 回答
8348 浏览

python - 十进制模块中的有效数字

所以我决定尝试通过编写一些python脚本来解决我的物理作业来为我解决问题。我遇到的一个问题是重要的数字似乎并不总是正确地出现。例如,这可以正确处理有效数字:

但这不会:

所以两个问题:

  1. 我是对的,这不是预期的有效数字数量,还是我需要复习有效数字数学?
  2. 有什么方法可以做到这一点而不必手动设置小数精度?当然,我确信我可以使用 numpy 来做到这一点,但我只是想知道是否有一种方法可以使用 decimal 模块来做到这一点。
0 投票
11 回答
99848 浏览

c# - 解析浮点数的最佳方法?

在 CSharp 中解析浮点数的最佳方法是什么?我知道 TryParse,但我特别想知道的是点、逗号等。

我的网站有问题。在我的开发服务器上,“,”代表小数,“。” 为分隔符。但是在产品服务器上,情况正好相反。我怎样才能最好地捕捉到这一点?

0 投票
6 回答
3269 浏览

delphi - Delphi 中通过 writeln/readln 的实数精度

我的客户应用程序通过使用 writeln 和 readln 的文本文件导出和导入了很多 real 类型的变量。我试图增加所写字段的宽度,因此代码如下所示:

当我导出然后再次导入和导出并比较文件时,我得到最后两位数的差异,例如(此处的实际位数可能不正确,但你明白了):

这实际上对应用程序产生了影响,因此客户想知道我能做些什么。现在我不确定是否只有写入/读取才能做到这一点,但我想在我再次深入讨论堆栈之前我会提出一个快速的问题。我需要对此进行二进制处理吗?

这不是一个处理货币或其他东西的应用程序,我只是在文件中写入和读取值。我知道浮点有时有点奇怪,我认为其中一个例程(writeln/readln)可能会发生一些有趣的事情。

0 投票
7 回答
9407 浏览

c++ - 如何通过最小增量(或接近它)改变浮点数?

我有一个doublef,并且希望有一种方法可以将它稍微大一点(或小一点)以获得一个新值,该值将尽可能接近原始值,但仍严格大于(或小于)原始值。

它不必关闭到最后一点——更重要的是,我所做的任何更改都可以保证产生不同的值,而不是返回到原来的值。

0 投票
10 回答
17266 浏览

c# - C# 中的双精度数比浮点数快吗?

我正在编写一个应用程序,它读取大型浮点数组并使用它们执行一些简单的操作。我正在使用浮点数,因为我认为它会比双精度数更快,但是在做了一些研究之后,我发现这个话题有些混乱。谁能详细说明这一点?

0 投票
8 回答
740 浏览

java - 令人困惑的退货声明

我无法准确理解 IF 语句在做什么,从我可以看到它正在检查变量x是否等于 int 0。如果这是返回true变量的绝对值y......这是我失去情节的时候,为什么 return 语句会继续包含<= ESPILON?当然这意味着小于或等于 epsilon 的值?如果是这样,那是如何工作的?如果不是这个意思,那又是什么意思?

(JAVA代码)

0 投票
7 回答
3832 浏览

optimization - 这些天什么时候使用定点

对于激烈的数字运算,我正在考虑使用定点而不是浮点。当然,定点类型的大小有多少字节,它将在什么 CPU 上运行,我是否可以使用(对于英特尔)MMX 或 SSE 或任何新事物出现……

我想知道这些天浮点运行速度是否比以往任何时候都快,是否值得考虑定点?是否有一般的经验法则,我们可以说它会影响超过几个百分点?35,000 英尺的数值性能概述是什么?(顺便说一句,我假设大多数计算机都使用通用 CPU,而不是 DSP 或专用嵌入式系统。)

0 投票
3 回答
774 浏览

c - Haskell FFI / C MPFR 库包装问题

为了创建任意精度的浮点数/替换 Double,我尝试使用 FFI 包装MPFR,但尽管我付出了所有努力,但最简单的代码仍然不起作用。它编译,它运行,但在假装工作一段时间后它会模拟地崩溃。一个简单的 C 版本代码可以愉快地将数字“1”打印到(小数点后 640 位)总共 10,000 次。Haskell 版本,当被要求做同样的事情时,在“1.0000...0000”的 289 次打印输出和 385 次打印输出后默默地破坏(?)数据,它导致断言失败和炸弹。我不知道如何继续调试它,因为它“应该工作”。

该代码可以在http://hpaste.org/10923阅读并在http://www.updike.org/mpfr-broken.tar.gz下载

我在 FreeBSD 6 上使用 GHC 6.83,在 Mac OS X 上使用 GHC 6.8.2。请注意,您需要为库和头文件(以及那些从 GMP) 来成功编译它。

问题

  • 为什么 C 版本可以工作,而 Haskell 版本却失败了?接近 FFI 时我还缺少什么?我尝试了 StablePtrs 并得到了完全相同的结果。

  • 其他人可以通过编译和运行我的代码来验证这是否只是 Mac/BSD 的问题吗?(C 代码“有效”吗?Haskell 代码“无效”有效吗?)Linux 和 Windows 上的任何人都可以尝试编译/运行并查看是否得到相同的结果吗?

C代码:(works.c)

Haskell 代码:(Main.hs --- 不起作用)