21xrx.com
2025-01-12 18:33:27 Sunday
文章检索 我的文章 写文章
C++浮点数位数调整
2023-06-22 01:21:35 深夜i     11     0
C++ 浮点数 位数调整 精度 格式化输出

C++浮点数是在内存中以二进制形式存储的,因此其位数是有限的。在进行一些高精度计算或者输出时,我们可能需要对浮点数的位数进行调整。

C++中提供了两个头文件 ,分别可以用来获取浮点数的精度和设置输出浮点数的精度。

获取浮点数精度:


#include <limits>

#include <iostream>

int main()

  std::cout << std::numeric_limits<float>::digits10 << std::endl; // 6

  std::cout << std::numeric_limits<double>::digits10 << std::endl; // 15

  std::cout << std::numeric_limits<long double>::digits10 << std::endl; // 18

  return 0;

以上代码可以分别获取float、double和long double类型的浮点数的精度。如上代码输出结果分别为6、15和18,它们分别对应单精度、双精度、扩展精度(80位)格式下的有效数字位数。

设置浮点数精度:


#include <iomanip>

#include <iostream>

int main() {

  float f = 1.23456789;

  double d = 1.234567890123456789;

  std::cout << std::fixed << std::setprecision(3) << f << std::endl; // 1.235

  std::cout << std::fixed << std::setprecision(5) << d << std::endl; // 1.23457

  return 0;

}

以上代码中,我们用std::fixed指定对浮点数进行固定点位的输出(即小数点后的位数不变),同时使用std::setprecision(n)指定输出的小数点后n位。上述代码最终输出:


1.235

1.23457

通过以上两种方式,我们可以方便地对C++浮点数进行位数调整,以满足不同的需求。

  
  

评论区

    相似文章