问题标签 [inexact-arithmetic]
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.
python - 在 Python 中生成两个文件的“模糊”差异,以及浮点数的近似比较
我有一个比较两个文件的问题。基本上,我想做的是两个文件之间的类 UNIX 差异,例如:
$ diff -u 左文件右文件
但是我的两个文件包含浮点数;并且因为这些文件是在不同的架构上生成的(但计算相同的东西),所以浮动值并不完全相同(它们可能相差 1e-10)。但是我通过“差异”文件寻求的是找到我认为有显着差异的内容(例如差异超过 1e-4);在使用 UNIX 命令 diff 时,我得到几乎所有包含浮动值的行都不同!那是我的问题:我怎样才能得到像 'diff -u' 提供的结果差异,但对浮动比较的限制较少?
我想我会写一个 Python 的脚本来做到这一点,并找到了模块 difflib,它提供了类似 diff 的比较。但是我找到的文档解释了如何按原样使用它(通过单一方法),并解释了内部对象,但我找不到任何关于如何自定义 difflib 对象以满足我的需求的信息(比如只重写比较方法或这样)......我想一个解决方案可能是检索统一的差异,并“手动”解析它以消除我的“错误”差异,这并不优雅;我更喜欢使用已经存在的框架。
那么,有人知道如何定制这个库,以便我可以做我想要的吗?或者至少为我指明了正确的方向......如果不是在 Python 中,也许 shell 脚本可以完成这项工作?
任何帮助将不胜感激!提前感谢您的回答!
scheme - Scheme 函数 inexact->exact 是如何运作的?
SICP 中描述的 Scheme 程序如何inexact->exact
运作?
scheme - 方案 - R5RS 数值塔中的“不精确”概念
在思考实现方案 R5RS 的方式时,我对 R5RS 的以下摘录(第 22-23 页)感到困惑:
(余数 -13 -4) ==> -1
(余数 -13 -4.0) ==> -1.0 ; 不准确(lcm 32 -36) ==> 288
(lcm 32.0 -36) ==> 288.0 ; 不准确(分母 (/ 6 4)) ==> 2
(分母 (精确->不精确 (/ 6 4))) ==> 2.0
我们是否应该明白,即使 -4.0、32.0 和 (exact->inexact (/6 4)) 不精确,实现也应“记住”它们的精确等价物(-4、32 和 3/2),以便继续整数除法,素因子分解等?
否则,实施如何成功地给出上述答案?
提前感谢您对这个主题的任何启发!:)
尼古拉斯
c++ - 双 0.0 总是在便携式 C 中精确表示吗?
是否可以期望以下代码在具有符合 ANSI 的 C 编译器的所有环境中工作?
C++呢?
sql-server-2005 - SQL Server 算术转换结果
我只是在我整理的报告中查看一些非常小的差异,我很困惑 SQL Server 中用于投射的最佳实践是什么,如果有人可以指出正确的方向来解释我的内容我看到了。
使用与示例表中所示数据相似的当前计算,在少数情况下会出现非常小的 1p 误差@data
。
有人可以指出我正确的方向,或者至少告诉我我在看什么,以便我可以进一步研究?
下面的代码产生示例输出:
c++ - 将浮点数除以 10
可能重复:
为什么十进制数不能用二进制精确表示?
我正在为 C++ 下的数学使用开发一个非常简单的算法。
而且我有一个名为“step”的浮点变量,每次我完成一个while循环,我需要将step除以10。
所以我的代码有点像这样,
在我愚蠢的简单逻辑中,结果很好。step 将除以 10,从 1 到 0.1,从 0.1 到 0.01。
但它没有,而是出现了 0.100000000001 之类的东西。我就像“这到底是什么”
有人可以帮我解决这个问题。这可能与我不完全理解的数据类型本身有关。因此,如果有人可以进一步解释,将不胜感激。
iphone - 从字符串重新解析后,DBL_MAX 失去了很大一部分精度
我在我的 iPhone 上运行这段代码:
...并获得此输出:
printf()
为什么/序列atof()
失去精度(我假设stringWithFormat
在printf
内部)?它不仅发生在 DBL_MAX 上,而且发生在每个非常大的数字上(即10000
它按预期工作,因为DBL_MAX / 2
它没有)。有没有办法避免它?
matlab - 如何在 matlab 中获得 pi/4 等角度的 sin 和 cos 的精确值?
如果我用matlab写
我得到这个表格:
当我更希望获得 (2)^(1/2)/2 的实际值以更清楚地编写公式时。有没有办法按照我的要求做?
functional-programming - 为什么是 (max (sin (/ 5 3)) (sqr 12)) 在 Scheme/Dr. 球拍(初级学生语言)评估为不准确?
我正在阅读如何设计程序,在练习 2.1.1 中,我要:
找出 DrScheme 是否有平方数的运算;用于计算角度的正弦值;并用于确定两个数字的最大值。- 秒。2.2,前 2.1.1
我的代码是:
我运行程序时的结果是:
我对最后一个表达式感到困惑,它是#i0.9954079577517649
and的最大值144
。答案不应该是144
还是144.0
代替#i144.0
?
math - 如何在 Clojure 中将任何数字转换为 clojure.lang.Ratio 类型?
在方案中我可以做到:
在 Clojure 中,我可以做类似的事情:
但在方案中我可以做到:
这在 Clojure 中是不可能的:
如何将 Double(或实际上任何类型的数字)转换为 clojure.lang.Ratio?
在 Scheme 中,我们inexact->exact
在 Clojure 中也有类似“double to ratio”之类的东西,但我找不到类似的东西。