precision相关内容

检查浮点值是否等于 0 是否安全?

我知道您通常不能依赖 double 或 decimal 类型值之间的相等性,但我想知道 0 是否是一种特殊情况. 虽然我可以理解 0.00000000000001 和 0.00000000000002 之间的不精确性,但 0 本身似乎很难搞砸,因为它什么都不是.如果你什么都不精确,那它就不再是什么了. 但我对这个话题了解不多,所以不由我说. double x = 0.0;返回(x = ..
发布时间:2022-01-09 10:06:52 C#/.NET

在 16、32 和 64 位 IEEE-754 系统中可以表示什么范围的数字?

我对浮点数的表示方式略知一二,但恐怕还不够. 一般问题是: 对于给定的精度(对于我来说,精确的小数位数以 10 为基数),对于 16 位、32 位和 64 位 IEEE-754 系统可以表示哪些数字范围? 具体来说,我只对精确到 +/-0.5(个位)或 +/-0.0005(千分位)的 16 位和 32 位数字的范围感兴趣. 解决方案 对于给定的 IEEE-754 浮点数X ..
发布时间:2022-01-09 09:57:45 其他开发

浮点数和双精度数有什么区别?

我已经了解了双精度和单精度之间的区别.然而,在大多数情况下,float 和 double 似乎可以互换,即使用其中一个似乎不会影响结果.真的是这样吗?浮点数和双精度数何时可以互换?它们之间有什么区别? 解决方案 差别很大. 顾名思义,double 有 2xfloat[1]的精度支持>.一般来说,double 有 15 位精度,而 float 有 7. 位数的计算方法如下: ..
发布时间:2022-01-09 09:56:18 C/C++开发

为什么我看到一个双变量初始化为 21.4 之类的某个值作为 21.399999618530273?

double r = 11.631;双θ = 21.4; 在调试器中,这些显示为 11.631000000000000 和 21.399999618530273. 我怎样才能避免这种情况? 解决方案 这些准确性问题 是由于浮点数的内部表示,您无能为力避免它. 顺便说一句,在运行时打印这些值通常仍然会产生正确的结果,至少使用现代 C++ 编译器是这样.对于大多数操作来说,这不是 ..
发布时间:2022-01-09 09:54:23 其他开发

SAS 数值比较的奇怪行为;精度问题?

我在 SAS 中运行一个简单的不等式过滤器,如下所示: 数据 my_data;设置我的数据;my_var = sum(parent_var1, -parent_var2)跑;过程 sql;选择 my_var 格式=32.32来自我的数据其中 my_var 我得到以下结果: my_var.02000000000000000000000000000000.0200000000000000000 ..
发布时间:2022-01-08 17:53:16 其他开发

NHibernate 3.0 将小数四舍五入到小数点后 5 位 - 为什么?

全部, 我们使用 NHiberate 2.1 来存储十进制值(汇率),例如123.1234567 到 7 个小数位 我们使用默认映射样式映射类型: 但是当我们升级到 NHibernate 3.0 时,上面的值被保存为 123.1234500. 它没有在 3.0 发行说明中指定这种行为变化,尽管它似乎在问题 [NH-1594] 中详细说明了十进制的默认值是 DECIMAL(1 ..
发布时间:2022-01-02 16:15:14 其他开发

.NET 中计时器的最大精度是多少?

我想知道 System.Timers 中 Timer 类的精度是多少,因为它是双精度(这似乎表明您可以有几分之一毫秒).它是什么? 解决方案 Windows 桌面操作系统在大约 40 毫秒以下确实不准确.操作系统根本不是实时的,因此会出现明显的非确定性抖动.这意味着虽然它可能会报告小至毫秒或更小的值,但您不能真正指望这些值真正有意义.因此,即使将 Timer 间隔设置为某个亚毫秒值,您也不 ..
发布时间:2021-12-31 15:37:18 C#/.NET

多边形算法中的点有时会给出错误的结果

我在 StackOverflow 上看到了我在 PHP 代码中实现的“多边形中的点"光线追踪算法.大多数情况下,它运行良好,但在一些复杂的情况下,如果有复杂的多边形和恶意点,它就会失败,并说该点不在多边形中. 例如: 您将在此处找到我的 Polygon 和 Point 类:pointInPolygon 方法在 Polygon 类中.在文件的末尾,有两个点应该位于给定的多边形内(Google ..
发布时间:2021-12-30 19:31:15 PHP

确保 C++ 双精度为 64 位

在我的 C++ 程序中,我需要从外部字节序列中提取一个 64 位浮点数.有没有办法在编译时确保双打是 64 位?我应该使用其他类型来存储数据吗? 编辑:如果您正在阅读本文并且实际上正在寻找一种确保以 IEEE 754 格式存储的方法,请查看下面的 Adam Rosenfield 的回答. 解决方案 对其他答案的改进(假设 char 是 8 位,标准不保证这一点......).应该是这 ..
发布时间:2021-12-25 13:29:45 C/C++开发

C++ 单精度和双精度混合计算的控制规则是什么?

例如这些变量: result (double)一个(双)b(浮动)c(浮动)d(双) 一个简单的计算: result = a * (b + c) * d 类型转换的方式和时间,以及如何确定每次计算的精度是多少? 解决方案 所有操作都在相同类型的对象上完成(假设正常算术运算). 如果你编写的程序使用不同的类型,那么编译器会自动升级ONE参数,使它们都相同. 在这种情况下, ..
发布时间:2021-12-25 13:27:13 C/C++开发

C++ 的精确十进制数据类型?

PHP 有一个十进制类型,它没有浮点数和双精度数的“不准确",所以 2.5 + 2.5 = 5 而不是 4.999999999978325 或类似的东西. 所以我想知道 C 或 C++ 是否有这样的数据类型实现? 解决方案 是: C++ 有任意精度的库. 一个很好的例子是 GNU 多精度算术库. ..
发布时间:2021-12-25 13:24:55 C/C++开发

为什么IEEE754单精度浮点数只有7位精度?

为什么单精度浮点数有 7 位精度(或双精度 15-16 位精度)? 谁能解释一下我们是如何根据为 float(Sign(32) Exponent(30-23), Fraction (22-0)) 分配的 32 位得出的? 解决方案 有效数的 23 个小数位 (22-0) 出现在内存格式中,但总精度实际上是 24 位,因为我们假设有一个前导 1.这相当于 log10(2^24) ≈ 7 ..

0.0 和 1.0 之间有多少个双数?

这是我多年来一直在想的事情,但我以前从未花时间问过. 许多(伪)随机数生成器生成 0.0 到 1.0 之间的随机数.数学上在这个范围内有无限个数字,但 double 是一个浮点数,因此具有有限的精度. 所以问题是: 0.0 和 1.0 之间有多少个 double 数字? 1 和 2 之间的数字是否一样多?在 100 和 101 之间?在 10^100 和 10^100+1 之间 ..
发布时间:2021-12-21 15:41:39 其他开发

如何在 Keras 中计算准确率和召回率

我正在用 Keras 2.02(带有 Tensorflow 后端)构建一个多类分类器,我不知道如何在 Keras 中计算准确率和召回率.请帮帮我. 解决方案 Python 包 keras-metrics 可能对此有用(我是包的作者). 导入keras导入 keras_metrics模型 = 模型.顺序()model.add(keras.layers.Dense(1, activation ..
发布时间:2021-12-19 12:49:26 Python

用双精度表示整数

double(给定字节数,具有合理的尾数/指数平衡)能否始终完全精确地保持该字节数一半的无符号整数的范围? 例如八字节双精度型能否完全精确地保存四字节无符号整数的数字范围? 这将归结为两个字节的浮点数是否可以容纳一个字节的无符号整数的范围. 一个一字节的无符号整数当然是 0 -> 255. 解决方案 一个 IEEE754 64 位双精度型可以表示任何 32 位整数,仅仅因 ..
发布时间:2021-12-17 14:59:06 其他开发