当前位置:网站首页>C语言日记 5、7setprecision()问题
C语言日记 5、7setprecision()问题
2022-08-02 14:03:00 【宇 -Yu】
例 2-13:
#include <iostream>
#include <iomanip>
//io:输入输出 manip:manipulator(操纵器)的缩写
//(在c++上只能通过输入缩写才有效)只要对I/O进行格式控制,就必须要写
//具体详情,见:iomanip解释_码里奥特慢的博客-CSDN博客_iomanip
using namespace std;
int main()
{
double x = 1.23456789;
cout << x << endl;
//从这里我们可以发现,默认的有效数字个数为6位
//并且,该操作符运算遵循四舍五入法则
//[改成(float x = 1.23456789;)运行结果也一样]
cout << setprecision(3) << x << endl;
//该操作符运算遵循四舍五入法则。代入:
//cout << setprecision(4) << x << endl;
//即可验证
cout << setprecision(12) << x << endl;
//从这里我们可以发现
// 如果操作符规定的有效数字个数大于给出实数最大精度的话
// 就输出最大精度的实数,不用后面加零,也不用四舍五入。
return 0;
}
有效数字:
在一个数中,从该数的第一个非零数字起,直到末尾数字止的数字称为有效数字。
precise:准确的;精确的;
precision:精确(度);
另外,如果后面不重新定义对有效数字个数的规定,那么后面语句将一直遵循上一个定义有效数字个数的标准。例:
#include <iostream>
#include <iomanip>
//io:输入输出 manip:manipulator(操纵器)的缩写
//(在c++上只能通过输入缩写才有效)只要对I/O进行格式控制,就必须要写
//具体详情,见:iomanip解释_码里奥特慢的博客-CSDN博客_iomanip
using namespace std;
int main()
{
double x = 1.23456789, y = 4.5647687;
cout<< x << endl;
cout << setprecision(3) << x << endl;
cout << y<< endl;
return 0;
}
结合前面C语言日记 5 运算符和表达式(含类型转换(例2-6))中:
#include <iostream>
#include<iomanip>
using namespace std;
void main()
{
int a, b = 322;//整型
float x, y = 8.88;//浮点型,即实(数)型
char cl = 'k', c2;//字符型
a = y; //实型转整型,a=8
x = b;//整型转实型,x=322.0
a = cl;//字符型转整型,把字符k对应的ASCII码数值ASC(k)=107赋给a,a=107
c2 = b;//整型转字符型
//把数字322对应二进制数(101000010)低八位(01000010)作为ASCII码数值(66)
//把ASCII码数值(66)对应的字符Char(66)=B赋给c2
cout << a << "," << x << "," << a << "," << c2 << endl;
}
实数后面的小数点不显示。
利用我们这里学的setprecision()进行修改:
#include <iostream>
#include<iomanip>
using namespace std;
void main()
{
int a, b = 322;//整型
float x, y = 8.88;//浮点型,即实(数)型
char cl = 'k', c2;//字符型
a = y; //实型转整型,a=8
x = b;//整型转实型,x=322.0
a = cl;//频率字符型转整型,把字符k对应的ASCII码数值ASC(k)=107赋给a,a=107
c2 = b;//整型转字符型,把数字322对应二进制数(101000010)低八位(01000010)作为ASCII码数值(66),把ASCII码数值(66)对应的字符Char(66)=B赋给c2
cout << a << ",";
cout << setprecision(5) << x;
cout << "," << c2 << endl;
}
实数输出形式依然无改变,不是322.00
即使把两句都加上setprecision()也没用:
#include <iostream>
#include<iomanip>
using namespace std;
void main()
{
int a, b = 322;//整型
float x, y = 8.88;//浮点型,即实(数)型
char cl = 'k', c2;//字符型
a = y; //实型转整型,a=8
x = b;//整型转实型,x=322.0
a = cl;//频率字符型转整型,把字符k对应的ASCII码数值ASC(k)=107赋给a,a=107
c2 = b;//整型转字符型,把数字322对应二进制数(101000010)低八位(01000010)作为ASCII码数值(66),把ASCII码数值(66)对应的字符Char(66)=B赋给c2
cout << setprecision(5) << a << ",";
cout << setprecision(5) << x;
cout << "," << c2 << endl;
}
你奶奶的,怎么办?
边栏推荐
猜你喜欢
重新学习编程day1 【初始c语言】【c语言编写出计算两个数之和的代码】
使用云GPU+pycharm训练模型实现后台跑程序、自动保存训练结果、服务器自动关机
宏定义问题记录day2
c语言三子棋详解!!! (电脑智能下棋)(附上完整代码)
Unit 10 Continuous Tuning
yolov5,yolov4,yolov3乱七八糟的
YOLOv7使用云GPU训练自己的数据集
[ROS] Introduction to common tools in ROS (to be continued)
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十二章)
IDEA打包jar包
随机推荐
window10下半自动标注
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十四章)
第八单元 中间件
Deep learning framework pytorch rapid development and actual combat chapter4
8583 顺序栈的基本操作
ToF相机从Camera2 API中获取DEPTH16格式深度图
drf source code analysis and global catch exception
drf序列化器-Serializer
Go语言初始
redis delay queue
php开源的客服系统_在线客服源码php
Flask请求应用上下文源码分析
Verilog Learning Series
drf视图组件
St. Regis Takeaway Notes - Lecture 10 Swagger
[ROS](04)package.xml详解
drf路由组件Routers
YOLOv7使用云GPU训练自己的数据集
【VCU】详解S19文件(S-record)
【c】大学生在校学习c语言常见代码