C++ cout 如何保留小数输出

参考 : http://upliu.net/how-cout-out-2-precision.html

大家都知道用 C 语言中 printf () 函数可以非常方便控制保留 几位小数输出

不过在 C++ 当中也是可以控制小数保留,cout () 和 printf () 还是有一些区别

cout<<setiosflags(ios::fixed)<<setprecision(2);//需要头文件#include <iomanip>

  

然后再输出实数类型变量即可以保留2位小数输出了,当然你要保留三位小数,setprecision(3)就行。

setprecision是指设置输出精度,当没有

cout<<setiosflags(ios::fixed)

  时,输出格式是数据的有效位数,例如

2
float a = 123.666;
cout<<setprecision(5)<<a;

  将输出123.67(注意这里,它会四舍五入)。如果setprecision里的参数小于整数位数,将以指数形式输出,例如

2
float a = 123.666;
cout<<setprecision(2)<<a;

  

将输出1.2e+002。

setiosflags(ios::fixed)是指以固定的浮点显示,当setiosflags(ios::fixed)和serprecision(n)两个一起用时就表示保留n位小数输出。

这里还要注意,每次输出只要设置一次就行了,因为这两个的作用范围是后续对象,而不是仅对后一个对象起作用。

时间: 2024-10-06 14:39:49

C++ cout 如何保留小数输出的相关文章

codevs 2894 保留小数

时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 给你一个实数,小数点后不超过50位,请你保留到小数点后n位(四舍五入!!!) 输入描述 Input Description 第一行,一个实数,小数点后不超过50位 第二行,保留到N位小数 输出描述 Output Description 一个实数,保留过的小数 样例输入 Sample Input 5.198273258723587235728 3 样例输出 Sample Outp

C++ 保留小数

#include <iostream> #include <iomanip> using namespace std; int main () { double a=123456.343001; cout<<"a的值为123456.343001"<<endl<<endl; cout<<"不做任何操作,默认情况下只显示6六位数据:"<<a<<endl<<endl

c++ 如何实现保留小数并 且 不进行四舍五入

以保留2位小数为例,代码如下:#include <iostream>#include <iomanip>using namespace std; int main(){    double a;    cin>>a;    cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;//fixed为实数输出,若改为scientifitic则是科学技术法输出:setprec

java中double变量保留小数问题

(转载自玄影池扁舟) 做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结: java中double类型变量保留小数问题大体分两种情况: (一):小数点后面位数过长,四舍五入保留指定位数: 可以用以下代码实现: public class TestDemo { public static void main(String[] args) {     double a=15.32743859;     double b=Math.round(a*100

sql server 保留小数(续A)

写完上一篇文章后,陆续有朋友给出了其他思路,我在小结在这篇博客中. 思路一:转换成字符串后输出(这也是上一篇文章给的思路) 1 1 SELECT CASE WHEN @a % @b = 0 THEN CAST(@a / @b AS VARCHAR(16)) 2 2 ELSE CAST(CAST(@a * 1.0 / @b AS DECIMAL(10,4)) AS VARCHAR(32)) END '12 / 5', 3 3 CASE WHEN @c % @d = 0 THEN CAST(@c /

JS - 控制小数位数的方法(保留小数点后N位、以及小数取整)

开发中有时我们需要对小数进行取整,或者只保留 N 位小数进行显示.下面分别对这两种情况进行说明.这里假设我们有如下数字进行处理: var num = 5/3; console.log(num); 输出如下: 一.取整 1,直接取整(丢弃小数部分) 1 var num = parseInt(5/3);  // 1 2,四舍五入取整 1 var num = Math.round(5/3);  // 2 3,向上取整 1 var num = Math.ceil(5/3);  // 2 4,向下取整 1

[Java]对double变量进行四舍五入,并保留小数点后位数

1.功能 将double类型变量进行四舍五入,并保留小数点后位数 2.代码 import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.NumberFormat; public class Test { /** * 保留两位小数,四舍五入 * @param d * @return */ public static double format

js如何实现数字保留小数点后两位小数

js如何实现数字保留小数点后两位小数:小数点后保留两位小数是比较常见的形式,由于比较简单,下面直接给出例子.代码如下: var num=3.1415926; console.log(num.toFixed(2)); toFixed()函数可以参阅javascript的Number对象的toFixed()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9567 更多内容可以参阅:http://www.softwhy.

对数值数据的格式化处理(保留小数点后N位)

项目中有时会遇到对数值部分进行保留操作,列如保留小数点后2位,所有的数据都按这种格式处理, //保留小数点后2位,都按这种格式处理,没有补0 DecimalFormat df = new DecimalFormat("0.00"); //没有小数,或者小数部分不足是用0来补 BigDecimal db1 = new BigDecimal(111); System.out.println(df.format(db1)); //下面比较奇怪,不论是字符串表示,还是数字表示,只要没有大于11