问题标签 [rounding-error]
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.
matlab - 如何确定哪个公式会出现哪种类型的错误
如果 x 通常是一个小数(<0.00001),这些公式中的哪一个会出现舍入误差,哪些会出现截断误差?
我认为第一个是舍入误差,但第二个是什么?
sql - 避免 SSRS 中小值的舍入错误
使用 SQL Server Reporting Services,如果数据库中的值为零,则以下格式表达式将其转换为 --- 正确到小数点后 2 位:
,0.00;(#,0.00);'---'
但是,如果值为 0.001,并且报告需要显示为 2 位小数(即应显示 0.00),则结果格式 --- 仍会显示在报告中。
有没有办法避免 SSRS 中的这些舍入问题,如果是这样,新的格式/功能/等会是什么?对于 0.001,结果应该是 0.00。
python - Python关于舍入的奇怪行为
问题很简单,为什么会这样:
我知道它必须与浮点舍入错误有关,但我需要一个正式的解释,我们如何避免这种错误?
P / s:我使用python 2.7.3,MacOSX,64位
c# - 累积十进制类型的错误?
我有一个应用程序,我在其中累积十进制值(加法和减法)。我使用十进制类型而不是双精度以避免累积错误。但是,我遇到了一种行为与我所期望的不太一样的情况。
我有 x = a + b,其中 a = 487.5M 和 b = 433.33333333333333333333333335M。
计算加法,我得到 x = 920.8333333333333333333333334M。
然后我有 y = 967.8750000000000000000000001M。
我想断言 y - x = y - a - b。然而,
y - x = 47.0416666666666666666666667
y - a - b = 47.04166666666666666666666675
我认为这种错误正是十进制类型要避免的,那么这里发生了什么?
这是重现该问题的代码:
评论中有一些关于为什么这些高精度是必要的讨论,所以我想我会在这里总结一下。出于显示目的,我当然会对这些操作的结果进行四舍五入,但我对所有内部表示都使用十进制。一些计算沿途采用分数,这导致数字超出小数类型的精度。
但是,我会注意保持一切稳定以进行积累。因此,例如,如果我将一个数量分成三分之三,我取 x/3、x/3,然后是 (x - x/3 - x/3)。这是一个计算物理量的系统,这些物理量经常像这样被分割,所以我不想过早地通过四舍五入来引入偏差。例如,如果我将上面 x=1 的结果四舍五入到小数点后三位,我将得到 0.333、0.333、0.334 作为操作的三个部分。
系统可以做的事情的精确度存在实际的物理限制,但它试图做的事情的逻辑计算应该尽可能保持精确。主要的关键要求是系统的总量不应因这些不同的操作而改变。在上述情况下,我发现 decimal 可能违反此假设,因此我想更好地了解为什么会发生这种情况以及如何解决它。
c++ - Why is the answer for small numbers wrong? with MPIR
I'm using MPIR to deal with extremely small numbers. Somehow the answers I'm getting are wrong, and I have no idea why (something with rounding I guess..). How does rounding work in MPIR, and is it the reason for me getting these wrong answers?
Here is the code (the relevant part):
And here is the output for some values of p[i] and probLessThanR:
All the answers of 1-(1-p[i])^a-probLessThanR
should be positive. I prefer positive and less accurate than negative (but accuracy is really important).
Any Ideas?
Edit: added the output as a text and the value of a. BTW, a is long long for a reason (it can have bigger values).
.net - 除以 2 位小数点而不四舍五入结果
我对我正在开发的程序的结果有疑问。
例如,如果我有一个数字 8672.59,我想把它分成 2,结果应该是 4336.295。问题是如何将其转换为 2 位小数点并四舍五入结果,以便在添加 2 个数字时仍然可以得到正确的数量..
例子。
8672.59 / 2 = 4336.295
如果四舍五入为 2 位小数点,则结果为4336.30
我如何将其转换为 2 位小数点而不四舍五入,这样如果将其乘以 2,结果将与8672.59而不是8672.60相同
谢谢你!
sorting - Fortran90 程序似乎在未经我允许的情况下对数字进行四舍五入,并且弄乱了我的输出
我正在编写一个 Fortran90 程序,该程序将获取一个包含要绘制的点的输入文件,对这些点进行排序,计算最小和最大 x 和 y 值,将所有这些打印到另一个文件,然后创建一个图形并打印出来。
到目前为止,我正在计算最小值和最大值,并且我已经将它们全部打印到一个文件中。
程序的结构是这样的:
Please enter an input file:
GRAPH3.txt
Please enter an output file:
output.txt
然后它会从 GRAPH3.txt 中提取数据,做一些事情,然后打印出来。
GRAPH3.txt 看起来像这样:
第一个数字表示有多少点。其余的只是数字对。
当我运行我的程序时,这是我的输出:
显然,ymin
应该是1.00
,但它显示在0.00
。你知道它为什么会这样做吗?
这是我的程序:
我发现的另一个问题是,如果我从 sort 子例程中删除 write 语句,由于某种原因,程序根本不会排序。任何线索为什么会这样做?
c# - 双重和四舍五入非常难,但这太疯狂了
太棒了,这意味着 135.24 不能用双精度表示,对吧?
ruby - Ruby浮点数减法错误?
谁能解释为什么下面的 Ruby 例程给了我 2.0 的结果?我认为四舍五入是错误的根源。
同样的错误?
我正在运行 Ruby 1.9.3p448 (2013-06-27) [i386-mingw32]。
asp-classic - ASP 中的舍入错误 (vbscript)
我对 ASP 或 Vb 脚本知之甚少。我正在尝试解决一个错误,在该错误中,以经典 ASP 编写的过程意外四舍五入为更小的奇数。
据我了解, Round() 应该“四舍五入”。由于 720 * 51 / 160 = 229.5,Round(720 * 51 / 160, 0) 应该等于 230。但是,ASP 页始终返回 229。
实际的 ASP 代码复制如下。本例中的变量如下:
感谢您提供的任何帮助。
谢谢你。