Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 理解浮点精度_C++_Floating Point_Floating Point Precision - Fatal编程技术网

C++ 理解浮点精度

C++ 理解浮点精度,c++,floating-point,floating-point-precision,C++,Floating Point,Floating Point Precision,是否有以下情况: 可表示的浮点值在接近零的实数行中最密集 当数字线从零开始移动时,可表示的浮点值变得更稀疏(指数?) 如果上述两个都是真的,这是否意味着离零越远,精度越低 总体问题:精度在某种程度上是指或取决于你能(准确地)表示的数字的密度吗?浮点数基本上是用科学记数法存储的。只要它们是标准化的,它们就始终具有相同数量的有效数字,无论您在数字行的何处 如果你考虑密度是线性的,那么浮点数在接近0时指数增大, 当你非常接近于0,并且指数达到它的最低点时,浮点数就会被反规范化。此时,它们有一个额外的有

是否有以下情况:

  • 可表示的浮点值在接近零的实数行中最密集
  • 当数字线从零开始移动时,可表示的浮点值变得更稀疏(指数?)
  • 如果上述两个都是真的,这是否意味着离零越远,精度越低

  • 总体问题:精度在某种程度上是指或取决于你能(准确地)表示的数字的密度吗?

    浮点数基本上是用科学记数法存储的。只要它们是标准化的,它们就始终具有相同数量的有效数字,无论您在数字行的何处

    如果你考虑密度是线性的,那么浮点数在接近0时指数增大,


    当你非常接近于0,并且指数达到它的最低点时,浮点数就会被反规范化。此时,它们有一个额外的有效数字,因此更精确。

    术语精度通常指表示值中的有效位数(位)。因此,精度随表示尾数中的位数(或位数)而变化。与原点的距离不起作用

    你所说的关于实线上浮点数的密度是正确的。但在这种情况下,正确的术语是准确性,而不是精确性。小数量级的FP数比大数量级的FP数精确得多。这与整数形成对比,整数在其范围内具有一致的精度

    我强烈推荐这篇论文,它涵盖了这一点以及更多内容

    答案:

  • 可表示的浮点值在接近零的实数行中最密集?
  • 当数字行从零开始移动时,可表示的浮点值变得更稀疏(指数?)?
  • 如果上述两个都是真的,这是否意味着离零越远,精度越低?
  • 总体问题:精度在某种程度上是指或取决于你能(准确地)表示的数字的密度吗


    我还建议您

    是的,您的理解是正确的。我的理解是,所有可表示数字的精度大致相同(例如,指定值的位数)。但是,当远离零点时,精度会降低。“精度”可以指绝对精度,对于浮点数而言,绝对精度有机会更好地接近零点,或者指相对精度,对于浮点数而言,相对精度有机会保持一致。我认为,“精确性”和“精确性”之间的区别更多地与“你拥有的位数”和(某种计算)对它们的作用”有关。计算结果可以用24位精度的二进制数字表示,但由于复合误差,其(相对)精度仅为2^-20。