C语言怎么转化小数?

Python010

C语言怎么转化小数?,第1张

1.C语言的小数都是浮点数。浮点数属于floating binary point types,也就是说都double型的数值在相加减的时候,会将数值转换成二进制的数值如10001.10010110011这种表示发再做相加减,但是在转换成二进制代码表示的时候,存储小数部分的位数会有不够的现象,即无限循环小数,这就就会造成小数相加后结果会有微差距。

2.浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。

3.浮点计算是指浮点数参与的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。

一个浮点数a由两个数m和e来表示:a = m × b^e。在任意一个这样的系统中,我们选择一个基数b(记数系统的基)和精度p(即使用多少位来存储)。m(即尾数)是形如±d.ddd...ddd的p位数(每一位是一个介于0到b-1之间的整数,包括0和b-1)。如果m的第一位是非0整数,m称作规格化的。有一些描述使用一个单独的符号位(s 代表+或者-)来表示正负,这样m必须是正的。e是指数。

可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果。

要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double)。

在C语言中,使用格式化输出函数printf来实现输出。

输出格式为

%.NF

1 %为格式化字符串的引导字符。

2 .N表示指定显示N位小数。

3 F为类型字符,对于float, F值为f, 对于double,F值为lf。

举例:

1 要输出float a=1.23234保留3位小数的写法为:

printf("%.3f",a)

2 输出double b=123.345232保留4为小数,写法为:

printf("%.4lf",b)

程序大概思路是这样的:先提取出小数部分,再提取出整数部分。请看代码:

#include <stdio.h>

int main()

{

float num = 3.14

float temp = num

int integer

while (temp- 1 >0)

{

temp--

}

integer = num - temp

printf("%.2f的整数部分是:%d,小数部分是:%.2f", num, integer, temp)

getchar()

return 0

}

程序第4行定义了一个浮点数3.14,我们将提取出它的整数部分和小数部分。

提取处小数部分的思路是将浮点数不断减1,直到剩余部分大于0小于1,此时就得到了小数部分。

提取整数部分只需将原有的浮点数减去小数部分即可。

最后的getchar()用于暂停程序。