C / C++ 保留两位小数(setprecision(n)的一些用法总结)
2018-02-05 22:49
393 查看
做题遇到保留两位小数的题目,课本上写的又多又杂,网上查来的也是一堆内容需要筛选,눈_눈还是自己总结一下吧。
要保留几位小数setprecision(n)的括号里n就换成几。
前两种写法是一样的,第三种是简化写的。
上面的语句写一次就行了,对之后的数字都有效。
%f 格式化输出浮点型数据,在%之后加上“.n”即可。例如:
%.2f\n中的“.2”即保留两位小数
//不设定保留几位小数,则默认六位
2.setprecision(n)
功能:控制浮点数显示的有效数字个数。
图中可以看出,只用setprecision(n)是控制保留几位有效数字的。
由8-9两行代码可以看出,也是只写一次就可以。
8-10行可以看出,只是四舍五入修改了数字的显示方法,并不是修改原数字。从常识我们可以知道,如果12.345数字本身改变,那就是两位有效数字变为 12,那从两位有效数字变为四位有效数字会变为 12.00,而不是12.34。
11-12行可以明白我上一条为什么说变为而不是显示,因为如果末尾是0,那么0不显示,并且小数点也不会显示。
13行中可以看出,如果小数点之前的位数多于你要保留位数,则会使用科学计数法。
2.5补充一小点showpoint
这是在尝试过程中发现的一个无聊操作,如果12.34保留两位有效数字,会显示12,但是你可以经过这个操作让它显示12.哈哈哈哈哈哈哈注意有个“.”ヽ(•̀ω•́ )ゝ!
3.fixed
setprecision(n)和fixed合用的话可以控制小数点后有几位。
只要加上以下任意一个语句就可以。
然后你会发现,如果你要保留的位数多于数字原来的小数,就会补上0。
_(:3 」∠) 我是萝莉,梦想是做个程序媛……
首先说C++代码
#include <iomanip> //不要忘了头文件
//第一种写法 cout<<setiosflags(ios::fixed)<<setprecision(2);
//第二种写法 cout.setf(ios::fixed); cout<<setprecision(2);
//第三种写法 cout<<fixed<<setprecision(2);
要保留几位小数setprecision(n)的括号里n就换成几。
前两种写法是一样的,第三种是简化写的。
上面的语句写一次就行了,对之后的数字都有效。
然后说C的代码
最近了解了一下C语言的输出,毕竟我一个C++入门的人,看不懂C语言的输出hhhhh,可能因为我比较差吧。个人感觉c的输出比较简单粗暴。%f 格式化输出浮点型数据,在%之后加上“.n”即可。例如:
#include <stdio.h> int main() { float PI=3.1415926; float R=5.3; printf("面积 = %.2f\n", PI * R * R); //输出:面积 = 88.25 printf("面积 = %f\n", PI * R * R); //输出:面积 = 88.247337 printf("面积 = %.8f\n", PI * R * R); //输出:面积 = 88.24733734 return 0; }
%.2f\n中的“.2”即保留两位小数
//不设定保留几位小数,则默认六位
如果单纯会用就行,看到这里就可以了!
想深入理解的,继续看下面눈_눈
1.首先解释一下“语句写一次就行了,对之后的数字都有效”。在s之后设置保留两位小数之后,重新声明另一个数,输出依旧显示两位小数。所以设置精度语句只需写一次就可以了。#include <iostream> #include <iomanip> //设置必备的头文件 using namespace std; int main() { double s=12.345; cout<<setiosflags(ios::fixed)<<setprecision(2); cout<<s<<endl; //输出12.35 float pi=3.14159; cout<<pi<<endl; //输出3.14 return 0; }
2.setprecision(n)
功能:控制浮点数显示的有效数字个数。
图中可以看出,只用setprecision(n)是控制保留几位有效数字的。
由8-9两行代码可以看出,也是只写一次就可以。
8-10行可以看出,只是四舍五入修改了数字的显示方法,并不是修改原数字。从常识我们可以知道,如果12.345数字本身改变,那就是两位有效数字变为 12,那从两位有效数字变为四位有效数字会变为 12.00,而不是12.34。
11-12行可以明白我上一条为什么说变为而不是显示,因为如果末尾是0,那么0不显示,并且小数点也不会显示。
13行中可以看出,如果小数点之前的位数多于你要保留位数,则会使用科学计数法。
2.5补充一小点showpoint
这是在尝试过程中发现的一个无聊操作,如果12.34保留两位有效数字,会显示12,但是你可以经过这个操作让它显示12.哈哈哈哈哈哈哈注意有个“.”ヽ(•̀ω•́ )ゝ!
double s=12.345; cout<<s<<endl; //输出原数12.345 cout<<setprecision(2); cout<<s<<endl; //输出保留两位有效数字12 cout.setf(ios::showpoint);//或者写cout<<setiosflags(ios::showpoint); cout<<s<<endl; //输出保留两位有效数字外加一个小数点12.
3.fixed
setprecision(n)和fixed合用的话可以控制小数点后有几位。
只要加上以下任意一个语句就可以。
cout<<setiosflags(ios::fixed); cout.setf(ios::fixed); cout<fixed;
然后你会发现,如果你要保留的位数多于数字原来的小数,就会补上0。
_(:3 」∠) 我是萝莉,梦想是做个程序媛……
相关文章推荐
- 【c++】cout固定小数点保留3位小数,fixed,setprecision()
- java保留两位小数及getBytes用法
- C++中string::npos的一些用法总结
- C++中string::npos的一些用法总结
- BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
- BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
- Java保留两位小数的几种写法总结
- c++ float 保留两位小数
- C++保留两位小数输出
- 总结群里讨论的关于浮点数,如何四舍五入保留两位小数的处理方式
- Java保留两位小数的几种写法总结
- C++如何保留两位小数输出
- SQL保留两位小数用法
- c++ 求1+2!+3!+4!+…+30!。 科学计数法,保留两位小数。
- BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
- BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
- 保留两位小数的String用法
- 【小知识点总结】java中两个整数相除得到小数点并保留两位小数的方法
- js浮点数保留两位 与C# 浮点数保留 及一些项目总结
- BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)