C与C++一些输出格式上的区别

本文介绍如何在C++中进行浮点数的精确处理与格式化输出,包括强制类型转换、保持精度的方法及使用cout和printf进行指定位数的小数输出。还介绍了如何控制输出的小数点后位数及是否显示多余的0。

1、强制转换mid从double到int
double mid;
int mid1=int(mid);
2、想要得到double类型的mid,由于a[n]是int型,为了不丢失小数点后的精度
mid=(a[n/2-1]+a[n/2])/2.0;或者mid=double((a[n/2-1]+a[n/2]))/2;`
3、输入 输出确定的几位小数
scanf("%d",&n); double mid; int mid1=int(mid);
printf("%d %.1f %d",max,mid,min); printf("%.2f", 3.1415);输出几位小数
printf("%d %d %d",max,mid1,min);类型与格式对应
4、Int是将一个数值向下取整为最接近的整数的函数。
两个类型的数值可以相互赋值,int赋给double型,会自动补零,反之会截断只保存整数部分

5、cout输出精度用于浮点数输出,包括float和double类型。
要控制输出精度,需要引用头文件iomanip, 并使用setiosflags(ios::fixed);配合setprecision。
使用方法见示例代码:

#include<iostream>
#include<iomanip>
using namespace std;
 
int main()
{
    double f = 3.1415926535;
    cout << f << endl;           // 3.14159
    cout <<setiosflags(ios::fixed);  //只有在这项设置后,setprecision才是设置小数的位数。
    cout << setprecision(0) << f << endl;    //输出0位小数,3
    cout << setprecision(1) << f << endl;    //输出1位小数,3.1
    cout << setprecision(2) << f << endl;    //输出2位小数,3.14
    cout << setprecision(3) << f << endl;    //输出3位小数,3.142
    cout << setprecision(4) << f << endl;    //输出4位小数,3.1416
    return 0;
}

6、cout默认是不输出浮点数小数点后多余的0的。如果想要输出小数点后多余的0,则要在程序中用cout.setf(ios::showpoint);语句设置,不再想输出时要用cout.unsetf(ios::showpoint);语句恢复。
printf("%f",mid);默认输出小数点后六位,且0不省略。
%8.3f。就是:占8个字符的位置,小数点后面有3位。注意小数点也算一位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值