- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 C 中,给定两个单精度或 double 浮点数,是否有一种简单的方法来确定它们有多少有效数字“匹配”? IE。如果我有两个十进制表示的这样的数字 1.64298272
和 1.64298296
我想得到结果 7
.如果我关心小数位,这会很容易,但如果我对有效数字感兴趣,我不确定如何去做。
最佳答案
要进行精确比较,必须以足够的精度转换该值。 DBL_DECIMAL_DIG
(典型的 17)对于 double
来说已经足够了按照 @ryyker 的建议制作唯一的字符串
为两个值形成一个字符串
// - d . digits - 1 e - expo \0
#define N (1 + 1 + 1 + DBL_DECIMAL_DIG + 1 + 1 + 5 + 1)
char buf[N + 10]; // Some extra too to cope with strange NaN payloads
// Consider changing round mode to "round towards 0.0. See below notes.
snprintf(buf, sizeof buf,"%+.*e", DBL_DECIMAL_DIG - 1, value);
if (buf1[0] != buf2[0]) return 0; // sign test
e1 = strchr(buf1, 'e');
e2 = strchr(buf1, 'e');
if (strcmp(e1,e2)) return 0; // expo test (non-finite concerns omitted here for brevity)
digit = 0;
s1 = buf1;
s2 = buf2;
while (s1 < e1 && s2 < e2) {
if (isdigit(*s1)) {
if (*s1 == *s1) digit++;
else break;
}
s1++; s2++;
}
return digit;
s*printf()
的情况下执行此操作,检查基于二进制的浮点数并转换为十进制进行比较所涉及的数学将有效地重新执行
sprintf()
已经。
foo(0.0, 0.0)
和
foo(DBL_TRUE_MIN, DBL_TRUE_MIN)
这里会返回
DBL_DECIMAL_DIG
.如
DBL_TRUE_MIN
大约是 4.940656...e-324 但由于精确的十进制有大约 751 个有效数字,是否应该返回 751?
sprintf()
受执行质量的限制。
char buf[N + 3 + 10];
// Consider changing round mode to "round towards 0.0. See below notes.
snprintf(buf, sizeof buf,"%+.*e", DBL_DECIMAL_DIG + 3 - 1, value);
关于c - float : how many matching significant figures?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62325186/
我已经在线阅读了描述大端字节和小端字节的描述。但是,它们似乎基本上都以相同的方式读取,并且我仍然对“最大”和“最小”有效字节的实际实现感到困惑。我知道,小字节序值首先评估“最低有效”值,而在字节序大时
我已经计算了两个模型实验之间的温差。不同之处在于2D矩阵(长×长)。我想找出温差在95%显着水平上具有统计学意义的网格点,这是基于学生使用MatLab进行的t检验。。现在,我使用了MATLAB中的Tt
我试图在 R 中分析一些嘈杂的时间序列数据。这些数据基于动物的 CO2 排放,它们显示出一种我想表征的循环周期性。我想检验以下假设: H0:没有循环 CO2 排放(即不超过随机)。 H1:有一种循环或
我以前在这里寻求帮助的经历很丰富,我希望能再次获得帮助。 我正在估计一个相当大的混合效应模型,其中一个随机效应具有超过 150 个不同的级别。这将使标准的毛毛虫图变得非常难以理解。 如果可能的话,我想
想要用字符串标签替换我的数据框的某些数字列中的 NA -“不重要”。我尝试了以下方法,但出现错误 library(dplyr) library(tidyr) df_inu % mutate_a
情况1: 在主页上: script(src="angular.js") script(src="ember.js") script(src="react.js") script(src="knocko
想要用字符串标签替换我的数据框的某些数字列中的 NA -“不重要”。我尝试了以下方法,但出现错误 library(dplyr) library(tidyr) df_inu % mutate_a
更新 好的,经过一番调查,这在很大程度上要感谢乔恩和汉斯提供的有用答案,这就是我能够整理出来的内容。到目前为止,我认为它似乎运作良好。当然,我不会用我的生命去赌它的完全正确性。 public stat
我正在创建一个 Pandas DataFrame,其中一列是一年中每隔半小时的温度。 I want to create a column which on each row contains the
关于 Activity 的官方文档列出了 7 种生命周期方法。 onPostResume() 没有被引用为生命周期方法。 但是我觉得这个方法很重要。 在生命周期中,当一个activity从隐藏到显示状
问:数组键中的冒号:有什么特殊意义吗? 来自手册: 数组可以通过array() 语言构造来创建。它将任意数量的逗号分隔键 => 值对作为参数。 array( key => value ,
这个问题在这里已经有了答案: Difference between int[] array and int array[] (26 个答案) 关闭 8 年前。 String S[] = new St
为冗长的介绍道歉 - 只是试图适本地设置场景以避免歧义和困惑。 Web 应用程序已经从用于服务器端逻辑的基于浏览器的笨接口(interface)发展为完全基于浏览器的应用程序,对服务器端逻辑的需求最少
在 C 中,给定两个单精度或 double 浮点数,是否有一种简单的方法来确定它们有多少有效数字“匹配”? IE。如果我有两个十进制表示的这样的数字 1.64298272和 1.64298296我想得
在使用不同的排序算法时,我很惊讶 Groovy 闭包的表现非常糟糕。到目前为止,我找不到一个好的答案,所以现在在这里碰碰运气;) 为什么 Groovy 闭包比传统方法慢这么多? 这是一个显示性能差异的
我尝试使用 SKLearn 对相当大的数据集进行 LR,该数据集包含约 600 个虚拟变量和很少的区间变量(数据集中有 300 K 行),并且生成的混淆矩阵看起来很可疑。我想检查返回系数和方差分析的显
在对可扩展哈希进行编码时,可以选择使用哈希值的最高有效位或最低有效位来确定要哈希到哪个桶。使用最低有效位有许多优点: 当你加倍目录时,你可以只复制所有的指针,而不是必须创建一个新的目录来交错它们。 您
在发出管理命令 runserver 时,它会使用加载程序运行服务器。在Django1.5的源码中遇到了一段代码在启动新进程/线程中的服务器之前,它在环境变量中专门将 RUN_MAIN 的值设置为 't
似乎 Gremlin 控制台不适用于 Windows: 我下载了最新的 Gremlin 控制台并运行 bin\gremlin.bat 文件。似乎在连接(如下面的命令)并运行一个简单的远程命令(g.V(
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: At least the first 31 ,or 63 characters of an internal nam
我是一名优秀的程序员,十分优秀!