问题标签 [rounding]

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 投票
3 回答
502 浏览

perl - 如何解决导致 Perl 的 Statistics::Descriptive 中的无限循环的舍入错误?

我正在使用 Perl 中的Statistics::Descriptive库来计算频率分布并遇到浮点舍入误差问题。

我将两个值 0.205 和 0.205(取自其他数字并 sprintf'd 到那些)传递给 stats 模块并要求它计算频率分布,但它陷入了无限循环。

使用调试器单步执行,我可以看到它正在执行以下操作:

$self->sample_range (范围是 max-min)返回 2.77555756156289e-17 而不是我期望的 0。这意味着循环 ((min+=range) < max)) 进入(出于所有意图和目的)无限循环。

DB<8> 打印 $self->{max};
0.205
DB<9> 打印 $self->{min};
0.205
DB<10> 打印 $self->{max}-$self->{min};
2.77555756156289e-17

所以这看起来像一个舍入问题。不过,我想不出如何解决这个问题,而且我不确定编辑库是个好主意。我正在寻找解决方法或替代方法的建议。

干杯,尼尔

0 投票
5 回答
442 浏览

c++ - 正确格式化有错误的数字 (C++)

我有三组数字,一个测量值(在 0-1 范围内),两个错误(正数和负数)。这些数字应该与有效数字的数量一致,四舍五入,对应于第一个非任何一个数字中的零条目。

如果它是一个,则在测量中跳过此要求(即只需要考虑误差中的数字)。例如:

现在,通过取 log10(num) 很容易获得第一个非零数字,但我有一个愚蠢的时刻,试图让剥离和舍入以一种干净的方式工作。

所有数据类型都是双精度的,选择的语言是 C++。欢迎所有和任何想法!

0 投票
15 回答
310214 浏览

.net - 为什么 Math.Round(2.5) 返回 2 而不是 3?

在 C# 中, 的结果Math.Round(2.5)是 2。

应该是3吧?为什么在 C# 中是 2?

0 投票
6 回答
5718 浏览

sql - SQL Server 自动舍入?

我对以下结果感到非常困惑:

控制台结果 = 0.01745329251994329500

控制台结果 = 0.0174533

我不明白,因为提到这个:

http://msdn.microsoft.com/en-us/library/ms131092.aspx

Sql Server Float 应该等同于 c# double。但是当我在 c# 中计算它时:

我得到 0.017453292519943295 ......

0 投票
5 回答
13649 浏览

c++ - 舍入双打 - .5 - sprintf

我正在使用以下代码舍入到 2dp:

它成功地将 6.666 舍入到 6.67,但在舍入 5.555 时无法正常工作。它返回 5.55,而它应该(至少在我看来)返回 5.56。

当下一个数字是 5 时,我怎样才能让它四舍五入?即返回 5.56。

编辑:我现在意识到这种情况正在发生,因为当我用 cin 输入 5.555 时,它被保存为 5.554999997。

我将尝试分两个阶段进行舍入——首先到 3dp,然后到 2dp。还有其他(更优雅)的想法吗?

0 投票
3 回答
29868 浏览

sql - SQL Round 函数不起作用,有什么想法吗?

这是 SELECT 语句:

关于为什么不四舍五入到小数点后两位的任何想法?

0 投票
4 回答
3492 浏览

matlab - MATLAB - 地板问题

我是 MATLAB 初学者。这是问题所在:

c 应该是 1,对吧?为什么是0???

直接输入b = 2时不同,如下:

0 投票
4 回答
6703 浏览

c# - Excel RoundUp 与 .NET Math.Round

在 Excel 中,=ROUNDUP(474.872126666666, 2)-> .NET 中的 474.88

我的客户想要 Excel 舍入结果,有什么方法可以在 .NET 中获得 474.88?

非常感谢

0 投票
15 回答
34671 浏览

java - 是否有任何 Java 函数或 util 类以这种方式进行舍入:func(3/2) = 2?

是否有任何 Java 函数或 utilclass以这种方式进行舍入:func(3/2) = 2

Math.ceil()没有帮助,按名称应该这样做。我知道BigDecimal,但不需要它。

0 投票
7 回答
45726 浏览

sql - SQL 轮函数

round(45.923,-1)结果为 50。这是为什么呢?它是如何计算的?

(对不起,我误认为这个问题的早期版本表明价值是 46)