问题标签 [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.

0 投票
5 回答
2320 浏览

c++ - cout 可以以某种方式改变变量吗?

所以我有一个看起来像这样的函数:

在某些时候,这个函数溢出并返回一个非常大的负值。为了尝试准确追踪发生这种情况的位置,我添加了一条 cout 语句,使函数看起来像这样:

它奏效了!当然,我通过使用 double 完全解决了这个问题。但是我很好奇为什么当我计算它时该功能可以正常工作。这是典型的,还是我在其他地方遗漏了一个错误?

(如果有帮助的话,存储在浮点数中的值只是一个整数值,并不是特别大的值。我只是将它放在浮点数中以避免强制转换。)

0 投票
3 回答
2234 浏览

objective-c - Objective-C 中的浮点数问题

我有一个小问题,我找不到解决方案!

我的代码是(这只是一个示例代码,但我的原始代码是这样的):

输出是 52.450001 而不是 52.450000 !

我不知道,因为会发生这种情况!

谢谢你的帮助!

~解决了~

谢谢大家!是的,我已经用双重类型解决了!

0 投票
7 回答
3762 浏览

double - 下一个更高/更低的 IEEE 双精度数

我正在做高精度的科学计算。在寻找各种效果的最佳表示时,我不断提出想要获得下一个更高(或更低)双精度数的理由。本质上,我想做的是在双精度的内部表示中的最低有效位上加一个。

困难在于 IEEE 格式并不完全统一。如果要使用低级代码并实际上将 1 添加到最低有效位,则生成的格式可能不是下一个可用的双精度。例如,它可能是一个特殊情况数,例如 PositiveInfinity 或 NaN。还有一些低于正常值的值,我不声称理解,但它们似乎具有与“正常”模式不同的特定位模式。

可以使用“epsilon”值,但我从未理解它的定义。由于 double 值的间距不均匀,因此不能将单个值添加到 double 以产生下一个更高的值。

我真的不明白为什么 IEEE 没有指定一个函数来获得下一个更高或更低的值。我不能成为唯一需要它的人。

有没有办法获得下一个值(没有某种尝试添加越来越小的值的循环)。

0 投票
4 回答
955 浏览

python - Euler #26,如何以更高的精度将有理数转换为字符串?

我想获得1/7更高的精度,但它被截断了。转换有理数时如何获得更好的精度?

0 投票
2 回答
301 浏览

c - 与浮点数混淆

输出:

但是如果写x=3.1234e2输出是312.339996,如果x=3.12345678e2输出是312.345673

为什么输出是这样的?我想如果我写x=3.1234e2输出应该是312.340000,但实际输出是312.339996使用 GCC 编译器。

0 投票
4 回答
1934 浏览

php - 最大值是多少。我应该为浮点数显示多少小数?(PHP)

我仍然无法得到准确的结果。最大值是多少。如果我希望它尽可能准确,我应该显示多少小数?

一些代码(准备复制粘贴和测试):

我应该推断答案是 4 吗?但是我在评论中仍然有问题

编辑:我认为没有人理解我的测试。我知道花车是不准确的。但一件事是 1 != 0.98990123,另一件事是 1 != 0.0000。如果我在 bc* 函数中将精度设置为 4,我希望得到至少 0.9899(如果完美答案是 1),而不是 0.0000。一件事是“对于无限精度来说并不完全准确”,另一件事是“完全没用”。

编辑 2:@Michael Borgwardt 有解决方案

0 投票
1 回答
10359 浏览

objective-c - Objective-C 浮点数/双精度

我正在搞乱存储floats 和doublesNSUserDefaults用于 iPhone 应用程序,我在精度如何与它们一起工作以及我如何理解它的工作原理方面遇到了一些不一致。

这和我想的完全一样:

但是,这个没有:

这是 GHUnit 给我的输出:

但是,如果我首先将 double 转换为 a float,然后再转换为 adouble它可以正常工作:

我假设最后输入的数字没有'f'已经被认为是doubles。这是不正确的吗?如果是这样,为什么转换为 afloat然后double正常工作?

0 投票
3 回答
15672 浏览

python - 如何从变量中指定浮点小数精度?

我有以下重复的简单代码重复了几次,我想为其创建一个函数:

我希望能够调用这个函数:def printStr(precision)
它执行上面的代码并tabStr返回val小数点precision

例如:printStr(3)
将返回63.457for valin tabStr

任何想法如何完成这种功能?

0 投票
7 回答
2059 浏览

c++ - 解决浮点舍入问题 C++

我开发了一个科学应用程序(模拟在细胞核中移动的染色体)。染色体被分成小片段,这些片段使用 4x4 旋转矩阵围绕随机轴旋转。

问题是模拟执行了数千亿次旋转,因此浮点舍入误差会累积并呈指数增长,因此随着时间的流逝,片段往往会“飘走”并与染色体的其余部分分离。

我在 C++ 中使用双精度。该软件目前在 CPU 上运行,但将移植到 CUDA,并且模拟最多可以持续 1 个月。

我不知道如何以某种方式重新规范化染色体,因为所有片段都链接在一起(您可以将其视为双向链表),但如果可能的话,我认为这将是最好的主意。

你有什么建议吗 ?我觉得有点失落。

非常感谢你,

H。

编辑:添加了简化的示例代码。您可以假设所有矩阵数学都是经典实现。

0 投票
1 回答
490 浏览

floating-point - 选择浮点计算模型

我的问题主要是针对科学计算的,但我问的是一般情况。您如何在编译器中实际选择 fp 模型?例如英特尔具有精确、严格、快速、扩展、来源、双重等。