2

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

关于【c保留两位小数怎么保留】,c语言如何保留两位小数,今天涌涌小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

  • 内容导航:
  • 1、c保留两位小数怎么保留:c语言如何保留两位小数
  • 2、浮点数会自动四舍五入吗 大部分人都想错了

1、c保留两位小数怎么保留:c语言如何保留两位小数

c语言如何保留两位小数?感兴趣的小伙伴们快来了解一下吧。

工具/材料

编程工具dev c++

操作方法

我们首先打开dev c++。然后创建一个新的源代码窗口。

之后输入代码,这个时候我们把内容输出,设置浮点型。也就是%f。

但是输出的时候默认有多位小数。

这时我们就要把“printf”设置%.2f,也就是两位数,因为我们写了2。

之后再执行代码的时候就会看到只有两位小数了。

2、浮点数会自动四舍五入吗 大部分人都想错了

前几天,有个小伙伴在做实验过程中,发现了一个奇怪的现象,这个现象就是...

他在用printf输出浮点数的时候,想把数据保留到小数点后的两位,他是这么写的...

float c=1.155;printf("%.2f",c);

他的书写是对的,没有错误。但是他发现,当c等于1.555时,保留两位小数输出是1.55,而当c等于3.555时,保留两位小数输出是3.56。这个结果,就让人捉摸不透了,因为...

如果是程序运算会自动四舍五入的话,结果应该是1.56和3.56;如果程序运算不会自动四舍五入的话,结果应该是1.55和3.55。可是结果却是1.55和3.56,这是什么鬼?

如果你去百度输入关键词“浮点数 四舍五入”,你会发现,有些人会说浮点数会自动四舍五入,如下图...

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

而有些人会说,不会自动四舍五入,如下图...

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

到底会不会自动四舍五入呢?

我刚才拿老顽童STM32开发板做了一个实验,我定义了6个浮点数,他们分别是...

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

然后我用printf给他们保留2位小数后输出,程序如下...

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

在串口调试助手上看到的结果是...

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

结果是,6个数,有3个数自动四舍五入了,有3个数没有四舍五入。

不管理论是什么,我们只看结果。结果是:浮点数保留小数点后的数据,有时会自动四舍五入,有时不会自动四舍五入。但是...

如果把一个浮点数赋给一个整数变量后,一定不会四舍五入。

所以,我们在保留浮点数的小数点精度时,必须要人工处理四舍五入

很多人一直在用的一个的方法,就是加0.5法

这个方法的理论依据是:

float f;//定义了一个浮点数

int t;//定义了一个整数

我们执行(t=f;)这条语句,不管f的小数点后面是小于5的数,还是大于等于5的数,都不会四舍五入,例如当f=3.2和f=3.8,结果都是t=3。

那么怎么样让f=3.8时,t=4呢?我们可以给f+0.5来解决,例如当f=3.8时,f+0.5=4.3,执行完t=f后,t就等于4了。而当f的小数点后的的数都小于5时,加一个0.5不会大于4,所以执行完t=f后,结果还都是3。这正好符合我们四舍五入的要求。

这里需要注意的是:其实这个...

加0.5的方法

只适合用于保留整数位的应用

很多人都不知道这一点,下面我就给大家实践一下。

按照加0.5法的原理,如果要保留2位有效数据的话,需要给数据加0.005,我们做个实验,把temp1~6都加0.005。

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

然后我们看输出结果,如下图...

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

看到了正确的结果,你不要高兴,因为...

你现在可以把temp1~6的小数点后面都改为554,如下图...

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

这时候,正确的结果,小数点后两位应该都是55,但是你看看结果,还是照样是56。这时候,就输出了完全错误的结果。

有的朋友会说,既然加0.005不行,那我们想办法还是加0.5吧。好的,下面我有一个方法...

先把temp1*100,然后再+0.5,然后把这个浮点数赋值给一个整数,然后再把这个整数除以100。

例如temp5的程序写为...

temp5=temp5*100+0.5;

t5=temp5;

temp5=(float)t5/100;

其中,t5是我定义的一个uint32_t类型的整型变量。我们来分析一下,因为temp5=4.555,4.555乘以100以后是455.50,然后再加0.5以后是456.00,把456.00取整后是456,然后456除以100就是4.56。

一切都算计的很好,但是实际的结果却还是4.55。但是如果你这样写的话,结果就是正确的...

temp5=4.555*100+0.5;

t5=temp5;

temp5=(float)t5/100;

看这个程序和上边的程序对比一下,只是这里直接用了4.555,而上边的程序用了temp5,看似一样,结果却不一样。上边程序的结果是4.55,下边程序的结果是4.56。

上边两个加0.5的实践,你一定要试一下。

那保留2位小数,怎么做才能确保完全正确?

送给大家一句话:捷径有可能是歧途,最笨的办法,其实是最保险的办法。(顽童哥语录一定要收藏)

我们可以把小数点后的第三位数取出来,然后判断它和5的大小,然后四舍五入。就是这个方法,绝对正确。写成程序的话,是这个样子的...

c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)

其中,t1是定义的uint32_t类型的整型变量。我们把数据带进去看一下,temp1是0.555,0.555乘以1000是555,555除以100取余数是55,55再除以10取余数是5,那t1就等于5。下面用if语句判断是否要进位,如果需要进位的话,4.555乘以100就是455.5,455.5加1就是456.5,然后我们把456.5强制类型转换成整型数据,就是456,456除以100,就是4.56;如果不需要进位的情况,大家自行分析。

这时候,你去换temp1~6的值去吧,不管换什么,结果都会四舍五入。

做一个稳定的电子产品,基础知识很重要!

本文关键词:c语言保留两位小数,c语言保留两位小数怎么表示,c语言如何保留两位小数点后面全部去掉,c语言保留两位小数怎么保留四舍五入,c语言如何保留两位小数四舍五入。这就是关于《c保留两位小数怎么保留,c语言如何保留两位小数(浮点数会自动四舍五入吗)》的所有内容,希望对您能有所帮助!

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2049730/
1
上一篇 社团面试时提问的问题有哪些,社团面试可以提问哪些问题(面试常见问题及应答策略)
下一篇 有理数是什么,无理数是什么小数(初中数学重点知识《有理数》)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部