C++中小数点输出格式(实例代码)
2019/7/10 22:45:44
本文主要是介绍C++中小数点输出格式(实例代码),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在《算法竞赛入门经典》一书中
习题1-5 打折 (discount)
一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。
我编写的代码为
#include<iostream> #include<iomanip> using namespace std; int main(void){ double s; cin>>s; if(s*95>=300){ cout<<setiosflags(ios::fixed)<<setprecision(2)<<s*95*0.85<<endl; } else{ cout<<setiosflags(ios::fixed)<<setprecision(2)<<s*95<<endl; } return 0; }
于是将C++中如何显示不同格式的小数查了一下:
Floating point output can be changed with << setiosflags( ios::fixed ) : never use scientific notation //绝对不使用科学记数法。 << setiosflags( ios::scientific ) : always use scientific notation //使用科学记数法。 << resetiosflags( ios::floatfield ) : restores default (use fixed or scientific notation based on the precision)//重置为缺省。 << (re)setiosflags( ios::showpoint ) : controls if the trailing zeros and decimal point will be output (default is no) //控制小数点后面的零是否显示。 << setprecision( digits ) : if fixed or scientific format is selected, controls the number of digits after the decimal place, otherwise controls the total number of significant digits// 如果fixed或者scientific已经确定了,则控制小数点后面的位数;否则,控制所有位数。
#include <iostream> #include <iomanip> using namespace std; int main(void){ double S = 0.000000123; double A = 456.7; double B = 8910000000000.0; cout << "default precision is " << cout.precision() << endl; // 6 cout << " S = " << S << endl; // 1.23e-07 cout << " A = " << A << endl; // 456.7 cout << " B = " << B << endl; // 8.91e+12 cout << setiosflags(ios::showpoint) << "ios::showpoint ON" << endl; cout << " S = " << S << endl; // 1.23000e-07 cout << " A = " << A << endl; // 456.700 cout << " B = " << B << endl; // 8.91000e+12 cout << resetiosflags(ios::showpoint) << "ios::showpoint OFF" << endl; cout << setiosflags(ios::fixed) << "ios::fixed ON" << endl; cout << " S = " << S << endl; // 0.000000 cout << " A = " << A << endl; // 456.700000 cout << " B = " << B << endl; // 8910000000000.000000 cout << resetiosflags(ios::fixed) << setiosflags(ios::scientific) << "ios::scientific ON" << endl; cout << " S = " << S << endl; // 1.230000e-07 cout << " A = " << A << endl; // 4.567000e+02 cout << " B = " << B << endl; // 8.910000e+12 }
输出为:
default precision is 6
S = 1.23e-007
A = 456.7
B = 8.91e+012
ios::showpoint ON
S = 1.23000e-007
A = 456.700
B = 8.91000e+012
ios::showpoint OFF
ios::fixed ON
S = 0.000000
A = 456.700000
B = 8910000000000.000000
ios::scientific ON
S = 1.230000e-007
A = 4.567000e+002
B = 8.910000e+012
--------------------------------
Process exited after 0.02482 seconds with return value 0
请按任意键继续. . .
以上这篇C++中小数点输出格式(实例代码)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持找一找教程网。
这篇关于C++中小数点输出格式(实例代码)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26MATLAB 中 A(7)=[];什么意思?-icode9专业技术文章分享
- 2024-11-26UniApp 中如何实现使用输入法时保持页面列表不动的效果?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中怎么实现输入法弹出时禁止页面向上滚动?-icode9专业技术文章分享
- 2024-11-26WebSocket是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-26页面有多个ref 要动态传入怎么实现?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中实现一个底部输入框的常见方法有哪些?-icode9专业技术文章分享
- 2024-11-26RocketMQ入门指南:搭建与使用全流程详解
- 2024-11-26RocketMQ入门教程:轻松搭建与使用指南
- 2024-11-26手写RocketMQ:从入门到实践的简单教程
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版