纯C++设置浮点数精度

用纯C++语法输出固定位数小数的方法简直不要太麻烦。

首先需要用到一个专用头文件<iomanip>,还需要用到一个流操作符setprecision,用于设置输出流中浮点数的精度。

比如设置π的精度。

cpp 复制代码
#include <iostream>
#include <iomanip> // 包含 setprecision 的头文件
int main() {
    double pi = 3.14159265358979323846;
    // 设置精度为 2,并输出3.1
    std::cout << std::setprecision(2) << pi << std::endl;
    // 设置精度为 5,并输出3.1416
    std::cout << std::setprecision(5) << pi << std::endl;
    // 设置精度为 10,并输出3.141592654
    std::cout << std::setprecision(10) << pi << std::endl;
    return 0;
}

可见,用setprecision设置精度是包括整数部分的,即它指的是总的有效数字位数。

如果你想要保留到小数点后几位,还需要引入另一个小伙伴:fixed

cpp 复制代码
#include <iostream>
#include <iomanip> // 包含 setprecision 的头文件
int main() {
    double pi = 3.14159265358979323846;
    // 设置精度为 2,并输出3.14
    std::cout << std::fixed <<  std::setprecision(2) << pi << std::endl;
    // 设置精度为 5,并输出3.14159
    std::cout << std::fixed << std::setprecision(5) << pi << std::endl;
    // 设置精度为 10,并输出3.1415926536
    std::cout << std::fixed << std::setprecision(10) << pi << std::endl;
    return 0;
}

当然了,如果在main函数前用了using namespace std;的话,代码中的std::就可以省去了,不过即便是这样,这种语法明显也比C语言麻烦的多。

相关推荐
Dillon Dong几秒前
【系列主题】拯救 OOM 与构建中断:Next.js 在 Docker 中的静态生成(SSG)避坑指南
开发语言·javascript·docker
AI人工智能+电脑小能手3 分钟前
【大白话说Java面试题】【Java基础篇】第10题:HashMap中的元素是有序存放的吗
java·开发语言·数据结构·后端·面试·哈希算法·哈希表
itzixiao8 分钟前
L1-049 天梯赛座位分配(20 分)[java][python][c]
java·开发语言·python
苏宸啊14 分钟前
C++异常
c++
HABuo17 分钟前
【linux网络基础(二)】理解端口号&UDP、TCP协议&网络字节序
linux·服务器·c语言·网络·c++·ubuntu·centos
子非鱼@Itfuture18 分钟前
ThreadLocal 是什么?如何用?以及最佳使用场景
java·开发语言·spring
杨凯凡19 分钟前
【024】JVM 参数入门:堆、栈、元空间与典型模板
java·开发语言·jvm
不懒不懒21 分钟前
【PaddleOCR实战指南:图像文字识别、实时摄像头与PyQt5 GUI开发】
开发语言·python
han_hanker24 分钟前
下拉模糊搜索多选, 编辑,详情问题
开发语言·javascript·ecmascript
invicinble30 分钟前
java集合的设计思路
java·开发语言·python