vc中cout如何解除fixed控制_C++ fixed用法详解

如果一个数字太大,无法使用 setprecision 指定的有效数位数来打印,则许多系统会以科学表示法的方式打印。

例如,还是之前的程序:// This program asks for sales figures for three days. // The total sales are calculated and displayed in a table. #include #include // Header file needed to use stream manipulators using namespace std; int main() { double day1, day2, day3, total; // Get the sales for each day cout << "Enter the sales for day 1: "; cin >> dayl; cout << "Enter the sales for day 2: ”; cin >> day2; cout << "Enter the sales for day 3: ”; cin >> day3; // Calculate total sales total = day1 + day2 + day3; // Display the sales figures cout << "nSales Figuresn"; cout << "-------------n" ; cout << setprecision (5); cout << "Day 1: " << setw(8) << day1 << endl; cout << "Day 2: " << setw(8) << day2 << endl; cout << "Day 3: " << setw(8) << day3 << endl; cout << "Total: " << setw(8) << total << endl; return 0; }

以下是在该程序输入较大数字之后的输出:

Enter the sales for day 1: 145678.99

Enter the sales for day 2: 205614.85

Enter the sales for day 3: 198645.22

Sales Figures

————-

Day 1: 1.4568e+005

Day 2: 2.0561e+005

Day 3: 1.9865e+005

Total: 5.4994e+005

为了防止出现这种情况,可以使用另一个流操作符 fixed,它表示浮点输出应该以固定点或小数点表示法显示:

cout << fixed;

当然,fixed 操作符可能最重要的还是当它与 setprecision 操作符一起使用时,setprecision 即可以以一种新的方式显示。它将指定浮点数字的小数点后要显示的位数,而不是要显示的总有效数位数。而这通常正是我们想要的。

例如,可以重写上面程序的第 22 行如下:

cout << fixed << setprecision(2);

然后使用相同的样本数据重新运行程序,即可得到以下结果:Enter the sales for day 1: 321.57 Enter the sales for day 2: 269. 60 Enter the sales for day 3: 307.00 Sales Figures ------------- Day 1: 321.57 Day 2: 269.60 Day 3: 307.00 Total: 898.17

通过将 fixed 和 setprecision 结合起来使用,得到了所需的输出结果。请注意,在这种情况下,精度值应设置为 2,这是希望看到的小数位数,而不是 5。原文始发于:C++ fixed用法详解

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值