floating-point-precision相关内容

浮点精度是可变的还是不变的?

关于浮点数(即 float、double 或 long double)是否只有一个值,我不断得到不同的答案精度,或具有可以变化的精度值. 一个名为 浮点与双精度的话题似乎暗示浮点精度是一种绝对的. 但是,另一个名为 浮点数和双精度数的区别的话题说, 一般来说,double 具有 15 到 16 个十进制数字的精度 另一个来源说, float 类型的变量通常具有大约 7 ..

超精度的 C++ 处理

我目前正在查看执行多精度浮动的 代码点算术.为了正常工作,该代码需要在明确定义的点处将值减少到它们的最终精度.因此,即使将中间结果计算到 80 位扩展精度 浮点寄存器,在某些时候它也必须被四舍五入到 64 位双精度 以供后续操作. 代码使用宏INEXACT来描述这个需求,但没有完美的定义.gcc 手册 提到 -fexcess-precision=standard 作为强制转换和赋值操作定义明 ..

可以在不丢失重要性的情况下转换为二进制并返回十进制的最重要的十进制数字精度是 6 还是 7.225?

我遇到过两种不同的浮点数精度公式. ⌊(N-1) log10(2)⌋ = 6 位小数(单精度) 和 N log10(2) ≈7.225 个十进制数字(单精度) 其中 N = 24 有效位(单精度) 第一个公式位于“IEEE 标准的第 4 页顶部754 for Binary Floating-Point Arithmetic",由 W. Kahan 教授撰写. 第 ..

把浮点数变成字符串

我已经开始说明何时需要将 IEEE-754 单精度和双精度数字转换为具有 10 基数的字符串.有FXTRACT指令可用,但它只提供以2为底的指数和尾数,因为数字计算公式是: value = (-1)^sign * 1.(mantissa) * 2^(exponent-bias) 如果我有一些特定底数的对数指令,我将能够更改表达式中 2exponent - bias 部分的底数,但目前我不知道该 ..

为什么使用 double 的 for 循环无法终止

我正在查看旧的考试题(目前是大学第一年),我想知道是否有人可以更彻底地解释一下为什么以下 for 循环在它结束时没有结束应该.为什么会发生这种情况?我知道它由于舍入错误或其他原因而跳过 100.0,但为什么呢? for(double i = 0.0; i != 100; i = i +0.1){System.out.println(i);} 解决方案 数字 0.1 不能用二进制精确表示,就像 ..
发布时间:2021-12-11 12:53:36 Java开发

Objective-C 中的浮点数问题

我有一个小问题,我找不到解决方案! 我的代码是(这只是一个示例代码,但我的原始代码是这样做的): float x = [@"2.45" floatValue];for(int i=0; i 输出是 52.450001 而不是 52.450000! 我不知道,因为这种情况发生了! 感谢您的帮助! ~解决~ 谢谢大家!是的,我已经用 double 类型解决了! ..

printf 宽度说明符以保持浮点值的精度

是否有一个 printf 宽度说明符可以应用于浮点说明符,该说明符会自动将输出格式化为必要数量的有效数字,以便在扫描string back in,获取的是原来的浮点值? 例如,假设我将 float 打印到 2 个小数位的精度: float foobar = 0.9375;printf("%.2f", foobar);//打印出 0.94 当我扫描输出 0.94 时,我没有符合标准的保证我 ..
发布时间:2021-12-01 23:45:48 其他开发

添加 32 位浮点数.

我学到的比我想知道的浮点数还要多. 假设我需要添加: 1 10000000 00000000000000000000000 1 01111000 11111000000000000000000 2 的补码形式. 第一位是符号,接下来的 8 位是指数,最后 23 位是尾数. 不转换为科学记数法,如何将这两个数字相加?你能一步一步地走过去吗? 这些东西有什么好 ..
发布时间:2021-11-26 14:14:20 其他开发

添加 32 位浮点数.

我学到的比我想知道的浮点数还要多. 假设我需要添加: 1 10000000 00000000000000000000000 1 01111000 11111000000000000000000 2 的补码形式. 第一位是符号,接下来的 8 位是指数,最后 23 位是尾数. 不转换为科学记数法,如何将这两个数字相加?你能一步一步地走过去吗? 这些东西有什么好 ..
发布时间:2021-11-24 22:59:47 C#

N个间隔的布尔定律(C)

我正在尝试使用此公式在n个间隔内实施Boole规则 到目前为止,我已经开发了以下代码: //f =在范围[a,b]上的函数n =间隔数长双布尔(长双(* f)(长双),double a,double b,int n){长双倍和= 7 * f(a);//因为起始值未加倍长双倍h =(b-a)/(n-1);//每个间隔的宽度int mod;int我= 1;而 (i ..
发布时间:2021-05-31 20:46:18 C/C++开发

在单精度浮点数中无法表示的最小整数

所以我知道用单个精度浮点不能表示的最大整数是2 ^(23 + 1)+ 1 = 16,777,217. 我们是如何知道我们使用2 ^(23 + 1)+ 1的.我知道有一个隐含的1,加上23是尾数表示的位数,但是为什么这样做有效? 解决方案 我认为这里的窍门是理解浮点表示的基础:每个数字都表示为1.fraction * 2 ^ exponent.这里的关键是要知道指数(8位)和分数(23位) ..
发布时间:2021-05-08 19:55:31 其他开发