c++小数输出规则,fixed保留小数,setprecision()设定位数

#include <iostream>
#include <iomanip>
int main() {
//default
// std::cout<<"default========================================"<<std::endl;
// std::cout<<123.1<<std::endl; // 123.1
// std::cout<<123.12<<std::endl; // 123.12
// std::cout<<123.123<<std::endl; // 123.123
// std::cout<<123.1234<<std::endl; // 123.123
// std::cout<<123.12345<<std::endl; // 123.123
// std::cout<<123.123456<<std::endl; // 123.123
// std::cout<<123.1234567<<std::endl; // 123.123
// std::cout<<123.12345678<<std::endl; // 123.123
// std::cout<<123.123456789<<std::endl; // 123.123
// std::cout<<123.1234567891<<std::endl; // 123.123
// std::cout<<"fixed========================================"<<std::endl;
// std::cout<<std::fixed<<123<<std::endl;//123
// std::cout<<std::fixed<<123.0<<std::endl;//123.000000
// std::cout<<std::fixed<<123.1<<std::endl; // 123.100000
// std::cout<<std::fixed<<123.12<<std::endl; // 123.120000
// std::cout<<std::fixed<<123.123<<std::endl; // 123.123000
// std::cout<<std::fixed<<123.1234<<std::endl; // 123.123400
// std::cout<<std::fixed<<123.12345<<std::endl; // 123.123450
// std::cout<<std::fixed<<123.123456<<std::endl; // 123.123456
// std::cout<<std::fixed<<123.1234567<<std::endl; // 123.123457
// std::cout<<std::fixed<<123.12345678<<std::endl; // 123.123457
// std::cout<<std::fixed<<123.123456789<<std::endl; // 123.123457
// std::cout<<std::fixed<<123.1234567891<<std::endl; // 123.123457
// std::cout<<"setprecision()========================================"<<std::endl;
// std::cout<<std::setprecision(5)<<123.1<<std::endl; // 123.1
// std::cout<<std::setprecision(5)<<123.12<<std::endl; // 123.12
// std::cout<<std::setprecision(5)<<123.123<<std::endl; // 123.12
// std::cout<<std::setprecision(5)<<123.1234<<std::endl; // 123.12
// std::cout<<std::setprecision(5)<<123.12345<<std::endl; // 123.12
// std::cout<<std::setprecision(5)<<123.123456<<std::endl; // 123.12
// std::cout<<std::setprecision(5)<<123.1234567<<std::endl; // 123.12
// std::cout<<std::setprecision(5)<<123.12345678<<std::endl; // 123.12
// std::cout<<std::setprecision(5)<<123.123456789<<std::endl; // 123.12
// std::cout<<std::setprecision(5)<<123.1234567891<<std::endl; // 123.12
// std::cout<<std::setprecision(8)<<123.1<<std::endl; // 123.1
// std::cout<<std::setprecision(8)<<123.12<<std::endl; // 123.12
// std::cout<<std::setprecision(8)<<123.123<<std::endl; // 123.123
// std::cout<<std::setprecision(8)<<123.1234<<std::endl; // 123.1234
// std::cout<<std::setprecision(8)<<123.12345<<std::endl; // 123.12345
// std::cout<<std::setprecision(8)<<123.123456<<std::endl; // 123.12346
// std::cout<<std::setprecision(8)<<123.1234567<<std::endl; // 123.12346
// std::cout<<std::setprecision(8)<<123.12345678<<std::endl; // 123.12346
// std::cout<<std::setprecision(8)<<123.123456789<<std::endl; // 123.12346
// std::cout<<std::setprecision(8)<<123.1234567891<<std::endl; // 123.12346
//default
// std::cout<<123<<std::endl; // 123
// std::cout<<123456<<std::endl; // 123456
// std::cout<<123456789<<std::endl; // 123456789
// std::cout<<123.0<<std::endl; // 123
// std::cout<<123.1<<std::endl; // 123.1
// std::cout<<123456.1<<std::endl; // 123456
// std::cout<<123456789.1<<std::endl; // 1.23457e+08
// std::cout<<123.123456789<<std::endl; // 123.123
// std::cout<<123456.123456789<<std::endl; // 123456
// std::cout<<123456789.123456789<<std::endl; // 1.23457e+08
//fixed
// std::cout<<std::fixed<<123<<std::endl; // 123
// std::cout<<std::fixed<<123456<<std::endl; // 123456
// std::cout<<std::fixed<<123456789<<std::endl; // 123456789
// std::cout<<std::fixed<<123.0<<std::endl; // 123.000000
// std::cout<<std::fixed<<123.1<<std::endl; // 123.100000
// std::cout<<std::fixed<<123456.1<<std::endl; // 123456.100000
// std::cout<<std::fixed<<123456789.1<<std::endl; // 123456789.100000
// std::cout<<std::fixed<<123.123456789<<std::endl; // 123.123457
// std::cout<<std::fixed<<123456.123456789<<std::endl; // 123456.123457
// std::cout<<std::fixed<<123456789.123456789<<std::endl; // 123456789.123457
//setprecision(n)
// std::cout<<std::setprecision(8)<<123<<std::endl; // 123
// std::cout<<std::setprecision(8)<<123456<<std::endl; // 123456
// std::cout<<std::setprecision(8)<<123456789<<std::endl; // 123456789
// std::cout<<std::setprecision(8)<<123.0<<std::endl; // 123
// std::cout<<std::setprecision(8)<<123.1<<std::endl; // 123.1
// std::cout<<std::setprecision(8)<<12345678.1<<std::endl; // 12345678
// std::cout<<std::setprecision(8)<<123456789.1<<std::endl; // 1.2345679e+08
// std::cout<<std::setprecision(8)<<123.123456789<<std::endl; // 123.12346
// std::cout<<std::setprecision(8)<<123456.123456789<<std::endl; // 123456.12
// std::cout<<std::setprecision(8)<<123456789.123456789<<std::endl; // 1.2345679e+08
return 0;
}
/*
结论:
若输出整数,没有小数部分,则默认输出所有位数
以下是有小数部分的情况,
小数(有小数部分)的默认保留模式是保留有效数字,保留位数是6位
6位是从最高位开始的6位, 包括整数部分和小数部分
整数部分有效位数大于6位时会使用科学计数法输出, 科学计数法有效位数为6位,第6位四舍五入
整数部分有效位数小于等于6位时,不会使用科学计数法
整数部分完整输出后, 已输出的数字不足6位时
会输出小数部分的有效位数(尾部0不算有效位数),从最高位开始
若小数部分也不能补足6位, 则输出结束, 并不会在小数部分末尾以0来补足
std::fixed的影响会让保留的位数从有效数字变为小数点后数字, 会在小数部分末尾补0以补足位数
若不更改位数, 则位保留6位小数, 不足6位会在小数部分末尾补0补足6位
std::setprecision(x)会将保留的位数从6改为x然后再适用以上规则
*/
posted @   Kazuma_124  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2024-02-03 (python)代码学习||2024.2.3||题目是codewars上的【Validate Sudoku with size `NxN`】
点击右上角即可分享
微信分享提示