专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

C++ fixed用法详解

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/17 11:41:20       共计:3646 浏览
如果一个数字太大,无法使用 setprecision 指定的有效数位数来打印,则许多系统会以科学表示法的方式打印。

例如,还是之前的程序:
// This program asks for sales figures for three days.
// The total sales are calculated and displayed in a table.
#include <iostream>
#include <iomanip> // 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 Figures\n";
    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++ getline函数用法详解 | ·下一条:c++ setprecision用法详解

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有