设为首页 加入收藏

TOP

2.2.5 格式化带小数点的数字
2013-10-07 14:57:04 来源: 作者: 【 】 浏览:72
Tags:2.2.5 格式 小数点 数字

2.2.5  格式化带小数点的数字

计算机输出double类型的值时,格式可能与你预期的不同。例如,下面这个简单的cout语句就会产生很多种不同的输出:

  1. cout << "The price is $" << price << endl

如果price的值是78.5,输出结果可能如下:
  1. The price is $78.500000 

或者如下:
  1. The price is $78.5 

甚至可能是以下形式(详情参见2.3节):
  1. The price is $7.850000e01 

以下输出恐怕是最不可能出现的,但这种格式才是最有意义的:
  1. The price is $78.50 

为保证得到预期输出,要在程序中包含一些指令告诉计算机如何输出数字。

可以在程序中插入一个"魔法配方",指定含有小数点的数字(比如double类型的数字)以日常生活中习惯的方式来输出。换言之,可以确切地指定小数位数。例如,为了显示两位小数,需要以下"魔法配方":

  1. cout.setf(ios::fixed);  
  2. cout.setf(ios::showpoint);  
  3. cout.precision(2); 

在程序中插入上述3个语句,后续的任何cout语句都会按你指定的格式输出double类型的值。换言之,小数点之后刚好2位。例如,假设以下cout语句出现在上述"魔法配方"之后的某个地方,并假设price的值为78.5:
  1. cout << "The price is $" << price << endl

则输出结果肯定如下:
  1. The price is $78.50 

可用任何非负的整数代替"魔法配方"中的2,从而指定不同的小数位数。甚至能用int类型的变量代替2。

这个"魔法配方"将在第6章进一步讨论。现在,只需将这个"魔法配方"视为一长串指令,它的目的是告诉计算机你想以什么格式输出含有小数点的数字。

如果想更改小数位数,使程序中不同的值输出不同的小数位数,可以重复使用这个"魔法配方",用其他数字代替2。但是,重复这些"魔法配方"时,只需重复其中的最后一行。假如该"魔法配方"已在程序中出现过一次,那么只需添加下面这一行,即可让后续的所有double类型的变量输出5位小数:

  1. cout.precision(5); 

输出double类型的值

在程序中插入以下"魔法配方",后续所有double类型(或允许保留小数的其他类型)的数字将以日常生活中最习惯的方式来输出,即含有两位小数:

  1. cout.setf(ios::fixed);  
  2. cout.setf(ios::showpoint);  
  3. cout.precision(2); 

可用其他任何非负的整数代替其中的2,从而指定不同的小数位数。甚至能用int类型的变量代替2。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.2.8 编程提示:I/O中的换行 下一篇2.3.1 int类型和double类型

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: