C/C++保留小数点后位数

20 篇文章 0 订阅
16 篇文章 0 订阅

C++

单纯setprecison函数仅控制输出位数

看例子
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    float number1 = 132.364, number2 = 26.91;
    float quotient = number1 / number2;
    cout << quotient << endl;
    cout << setprecision(5) << quotient << endl;
    cout << setprecision(4) << quotient << endl;
    cout << setprecision(3) << quotient << endl;
    cout << setprecision(2) << quotient << endl;
    cout << setprecision(1) << quotient << endl;*/
    double dollars = 24.51;
	cout << dollars << endl;  // 显示 24.51
	cout << setprecision (5) << dollars << endl; // 显示 24.51
    return 0;
}

1.需注意以下

  • setprecison(n)设置精度函数,一次对后面所有数字均有效,除非后面再次设置才会更改
  • 单纯的输入setprecison包括小数和整数部分一共的位数
  • 头文件加上#include<iomanip>

2.控制小数

在cout语句后加入fixed(个人习惯简单)其他三种也可以

//第一种写法
	cout<<setiosflags(ios::fixed)<<setprecision(2);	
//第二种写法
	cout.setf(ios::fixed);
	cout<<setprecision(2);
//第三种写法
cout<<fixed<<setprecision(2);
  • 保留几位小数setprecison(n)n就写多少
  • 同样一次使用对后续都有效
 #include<iostream>
#include<iomanip> 
using namespace std;
int main(void) 
{
	float a=3.1415926;
	float b=3.13434343;
	float c=4.6557646; 
	cout<<a<<endl; //编译器默认6位有效数字,不同编译器可能不同
	cout<<fixed<<setprecision(4)<<a<<endl;//仅输出四位小数
	cout<<b<<endl;//同时b也会受到上面一行代码的影响
	cout<<setprecision(6)<<c<<endl;//重新设置成6 位
	
}
  • 请注意最后小数位数设置为6时使用setprecision函数而c中小数第6位将进行四舍五入

C语言

1.解析语法

  • 1.若跟的是f或lf,即是%7.2f或%7.2lf,输出7位对应的浮点数,小数点后取2位,不足用0补齐 右对齐。若对应的浮点数超过了7位则按实际位数输出。
  • 2.需要注意的是小数点也属于1个宽度
  • 3.同样保留几位数后面仍然数字依旧会四舍五入
#include<stdio.h>
int main ()
{
float a=5.1523;
float b=6.3;
float c=5.1565;
printf("%7.2f\n",a);
printf("%6.2f\n",b);
printf("%6.2f\n",c);
return 0;
}

2.若跟的是s,即%7.2s,则指示输出函数输出与之对应的字符串,取字符串前2位占宽7位右对齐。

#include <stdio.h> 
int main()
{
	printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA"); 
	return 0;
}

%3s, 格式输出字符串,右对齐,超出3个长度的,就全部输出;
%7.2s, 输出字符串占7个位置,右对齐,左补空格,输出2个字符;
%.4s, 仅输出4个字符,占位4个位置,右对齐;
%-5.3s: 输出3个字符,占位5个位置,左对齐右补空格。

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值