double-precision相关内容

IEEE-754 浮点精度:允许多少误差?

我正在从 sqrt 函数(用于 64 位双精度)>fdlibm 到我目前正在使用的模型检查工具 (cbmc). 作为我工作的一部分,我阅读了很多关于 ieee-754 标准的内容,但我认为我不了解基本操作(包括 sqrt)的精度保证. 测试我的 fdlibm 的 sqrt 端口,我在 64 位双精度上使用 sqrt 得到以下计算: SQRT(19770615168252036055552 ..

我应该使用双精度还是浮点数?

在 C++ 中使用一种代替另一种的优点和缺点是什么? 解决方案 如果你想知道真正的答案,你应该阅读每个计算机科学家都应该知道的关于浮点运算的知识. 简而言之,虽然 double 在其表示中允许更高的精度,但对于某些计算,它会产生更大的错误.“正确"的选择是:使用尽可能多的精度,但不要更多并选择正确的算法. 无论如何,许多编译器都在“非严格"模式下进行扩展浮点数学运算(即使用硬件 ..
发布时间:2022-01-09 10:07:39 C/C++开发

与 float 和 float 文字相比的奇怪输出

float f = 0.7;如果( f == 0.7 )printf("等于");别的printf("不等于"); 为什么输出不等于? 为什么会这样? 解决方案 发生这种情况是因为在您的声明中 if(f == 0.7) 0.7 被视为双精度数.尝试 0.7f 以确保该值被视为浮点数: if(f == 0.7f) 但正如 Michael 在下面的评论中所建议的,您永远不应 ..
发布时间:2022-01-09 09:52:28 C/C++开发

如何在小数点后将 Dart 中的双精度舍入到给定的精度?

给定一个double,我想把它四舍五入到给定的精度小数点后,类似于PHP的round()函数. 我能在 Dart 文档中找到的最接近的东西是 double.toStringAsPrecision(),但这并不是我所需要的,因为它在总精度点数中包含小数点之前的数字. 例如,使用 toStringAsPrecision(3): 0.123456789 舍入为 0.1239.1234567 ..
发布时间:2021-12-11 16:17:25 其他开发

float 与 float 文字比较的奇怪输出

float f = 0.7;如果( f == 0.7 )printf("相等");别的printf("不等于"); 为什么输出不等于? 为什么会发生这种情况? 解决方案 发生这种情况是因为在你的陈述中 if(f == 0.7) 0.7 被视为双精度值.尝试 0.7f 以确保将值视为浮点数: if(f == 0.7f) 但正如迈克尔在下面的评论中所建议的那样,您永远不应该 ..
发布时间:2021-12-01 14:55:46 C/C++开发

NaN或false作为双精度返回值

我有一个返回双精度值的函数.在某些情况下,结果为零,并且此结果应在调用方路由中进行相应处理.我想知道什么是返回双值数字的零(NaN,false等!)的正确方法: double foo(){如果(some_conditions){返回result_of_calculations;} 别的 {//以下哪个更好?返回std :: numeric_limits ::: quiet_N ..
发布时间:2021-05-30 20:41:03 C/C++开发

无穷大导致双重操作

我会理解为什么结果是无限的.我写下面的代码,我总是收到inf作为结果.我的代码有任何精度问题吗? #include #include #include "cuda.h" #include "curand_kernel.h" #define NDIM 30 #define NPAR 5 #define DIMPAR NDIM*NPAR __de ..
发布时间:2020-06-12 19:24:59 其他开发

计算值太大而无法求幂的马尔可夫链概率

我使用公式exp(X)作为马尔可夫链的利率.因此,选择一个链接比另一个链接的比率为exp(X1)/exp(X2).我的问题是,有时X很大,所以exp(X)会超出double的范围. 或者:给定一个X [i]数组,其中有一些X [i]太大,以至于exp(X [i])超出了double的范围,请为每个i计算exp(X [i] )/S,其中S是所有exp(X [i])的和. 解决方案 此伪 ..
发布时间:2020-06-12 19:24:39 Java开发

大n的java.lang.Math.pow(x,n)有多精确?

我想计算(1.0-p)^n,其中p是0到1之间的双精度数(通常非常接近0),n是一个正整数,可能是几百或几千(也许更大;我是还不确定).如果可能的话,我想只使用Java内置的java.lang.Math.pow(1.0-p, n)来实现,但是我有点担心,这样做可能会导致我对所关注的值范围产生巨大的准确性/精度损失.有人对使用Java的实现会有什么样的错误有一个大概的认识吗?我不确定它们的实现到底是 ..

SQL错误-缺少关键字

此查询有什么问题:我收到以下错误消息 SQL错误:ORA-00905:缺少关键字 00905. 00000-“缺少关键字" 它在第4行显示错误.请指教 CREATE TABLE ORDERS ( ID INT NOT NULL, ord_date DATE, AMOUNT double, CUSTOMER_ID INT references CUST ..
发布时间:2020-06-12 19:22:37 数据库

在编译时在浮点精度和双精度之间切换

如果要在编译时在浮点精度和双精度之间切换,我应该在哪里查看.就像,如果用户希望所有内容都以浮点数而不是双精度数,该如何保持这种灵活性?换句话说,我该如何定义一个有条件地为float或double precision的变量? 解决方案 如果可以在编译时进行切换,则简单的typedef即可: #ifdef USE_DOUBLES typedef double user_data_t; # ..
发布时间:2020-06-12 19:20:41 C/C++开发

在小数点后如何将Dart中的double舍入到给定的精度?

给出一个双精度值,我想将其舍入到小数点后的给定精度点 ,类似于PHP的round()函数. 我在Dart文档中可以找到的最接近的东西是double.toStringAsPrecision(),但这并不是我所需要的,因为它在精度总点中包括小数点前的数字. 例如,使用toStringAsPrecision(3): 0.123456789 rounds to 0.123 9.123 ..
发布时间:2020-06-12 19:19:44 其他开发

如何知道双字串是否是往返安全的?

我有一个double的文本表示形式,想知道将它来回翻倍并返回是安全的.如果我还想接受任何数字风格的输入,我怎么知道呢?或者我怎么知道用Double.Parse解析双字符串时是否丢失任何精度?或者,我如何ToString一个双精度以匹配与另一个双弦相同的格式?我认为对这些问题中的任何一个答案都是一种解决方案. 解决方案 使用R格式说明符将double转换为string: myDoubl ..
发布时间:2020-05-25 01:27:17 C#/.NET