问题标签 [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 投票
8 回答
3817 浏览

.net - 用于任意数字精度的 .NET Framework 库

我正在重新提出这个问题,并使其更加具体:是否有一个.NET 框架库支持具有任意精度数字的数字?

0 投票
5 回答
11355 浏览

c - 计算一个圆形数量级

对于一个简单的项目,我必须使大数字(例如 4294967123)可读,所以我只写带前缀的第一个数字(4294967123 -> 4.29G、12345 -> 12.34K 等)

代码(简化)如下所示:

它有效,但我认为有一个更优雅/更好的解决方案,而不是计算完整的精度对数,将其四舍五入并再次将其转换为 int。

我想到的其他解决方案:

(这要慢得多,但更容易阅读)

这些数字根据本福德定律分布,并且该数字应被视为无符号 64 位数字,因为在 10^x 附近不应存在舍入误差(例如,在 python 中math.log(1000,10)返回 2.999996,它被限制为 2)。有没有我想念的快速、准确的其他方式?

0 投票
3 回答
8431 浏览

c++ - c printf %f 默认精度是多少?

我很好奇:

如果你做一个printf("%f", number);陈述的精度是多少?即会显示多少个小数位?这个编译器依赖吗?

0 投票
3 回答
527 浏览

.net - 托管 C++ 中的 double.Parse 中的问题

在托管 C++ 中解析双精度值时,我遇到了一个奇怪的问题。可能是我做错了什么。当我做:

结果的输出是0.006000000000001。为什么它附加一个1?

此外,当我将值四舍五入到小数点后 5 位时,它会失败。我在做:

result2总是0.006000000000001。我究竟做错了什么?

0 投票
1 回答
1937 浏览

vbscript - VBScript 中的 Now() 精度

当调用 CDbl(Now()) 时,VBScript 中的 Now() 似乎以 10,000,000 秒精度返回时间。在尝试使用它来编写返回CIM_DATETIME 格式的更准确的 now 实现时,我发现在 VBScript 中,尽管特别精确,但并不是很准确,时间每秒只更新一次。这可以通过观察以下输出来证明:

我现在要回答的问题是,给定一个运行时间不到一秒的调用 Now() 的 VBScript,Now() 将返回什么时间?是脚本解释器启动的时间,Now() 被调用的时间,还是其他什么?

0 投票
3 回答
3352 浏览

c# - 在 LINQ 中以分钟精度确定 Datetime 值的相等性

我需要使用分钟精度比较两个日期时间值以确定相等性(完全相同)。这是最好的方法吗?我的日期可能有秒和毫秒,但我只想考虑到分钟。

0 投票
6 回答
273 浏览

iphone - 使用双精度值计算时,我什么时候会遇到问题?

想象一下我写了一个简单的计算器应用程序,它只计算简单的东西,比如

1.5 + 30 + 9755 - 30 - 20000 + 999900.54

我稍微记得使用浮点数时存在一些精度问题。我的计算器应用程序会在什么时候开始产生错误的结果?大多数时候,我只会计算像 1 + 2 - 963422 这样的整数,但有时我可能会输入一个浮点数。我对精度问题将在哪里开始生效没有什么大的线索。只是那双的最后一个数字?像-963419.0000000000003655?或者那会是什么样子?知道如何抓住这些吗?

0 投票
7 回答
1632 浏览

gcc - gcc 精度错误?

我只能假设这是一个错误。第一个断言通过,而第二个断言失败:

如果不是错误,为什么?

0 投票
12 回答
5785 浏览

c# - C# 哪个是精度 3 的最佳数据类型?

我想用以下 0.000 存储一个数字,这是最好的数据类型。

双标?

另外我猜INT是不可能的?

0 投票
6 回答
15183 浏览

c# - C# 中不是 15 位的 Double Type 精度吗?

我正在从Brainteasers 测试这段代码:

结果是“假”。当我更改数据类型时:

程序写出正确答案:“真”。

这个问题只是在浮点数之后使用了 6 位数字。15位的精度发生了什么?