C++中小数点输出格式(实例代码)

  • 更新时间:2023-01-05 09:16:35
  • 编辑:陆诗怀
本站精选了一篇C++相关的编程文章,网友汲越彬根据主题投稿了本篇教程内容,涉及到c、输出格式、C++中小数点输出格式相关内容,已被527网友关注,相关难点技巧可以阅读下方的电子资料。

参考资料

正文内容

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++相关教程

  • 用C/C++代码检测ip能否ping通(配合awk和system可以做到批量检测)

    今天小编就为大家分享一篇关于用C/C++代码检测ip能否ping通(配合awk和system可以做到批量检测),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    发布时间:2022-04-21

  • C++实现教师管理系统

    这篇文章主要为大家详细介绍了C++实现教师管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2022-04-16

  • 详解C++中的双冒号 ::

    给网友朋友们带来一篇关于C++的教程,这篇文章主要介绍了C++中的双冒号 ::,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

    发布时间:2022-09-06

  • C语言实现C++继承和多态的实例内容

    本文主要给大家简单讲诉了C和C++的区别以及如何使用C语言模拟实现C++继承和多态,并附上示例代码,是篇相当不错的文章,推荐给喜欢C语言的小伙伴们

    发布时间:2021-06-10

  • C++标准模板库函数sort的那些事儿

    为网友们分享了关于C++的教程,sort函数是标准模板库的函数,已知开始和结束的地址即可进行排序,可以用于比较任何容器(必须满足随机迭代器),任何元素,任何条件,执行速度一般比qsort要快

    发布时间:2022-07-11

  • 关于C++ string和c类型字符数组的对比

    为网友们分享了关于C++的教程,下面小编就为大家带来一篇关于C++ string和c类型字符数组的对比。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    发布时间:2022-10-21

  • C++类与对象的详细说明

    这篇文章主要为大家详细介绍了C++的类与对象,使用数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

    发布时间:2022-04-16

用户留言