怎么将c语言中一个浮点型数据的整数部分与小数部分提取出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么将c语言中一个浮点型数据的整数部分与小数部分提取出来相关的知识,希望对你有一定的参考价值。

如题,就是,就是如果13.215,提取出来13与215.注,小数部分长度不确定

代码如下:

#include <stdio.h>

int main()

double number; //其中number表示输入的数

int zhengshu;   //表示实数的整数部分

double xiaoshu;  //表示整数的小数部分

printf("请输入一个实数:"); //提示输入一个数

scanf("%lf",&number);

zhengshu = (int)number;

xiaoshu = number-zhengshu;

printf("%f整数部分为:%d,小数部分为:%f \\n",number,zhengshu,xiaoshu);

return 0;

程序执行结果:

程序设计思路就是输入一个浮点数,把这个浮点强转为整数,C语言强制转换浮点数为整数的话,会丢失精度,也就是小数部分,再把原来的数减去整数部分,就可以得到小数部分,然后定义变量把相应的部分存储,打印出来就行了。

参考技术A double x;

int a = (int)x;
double b = x-a;追问

这样显示不对,小数点后采集的不对

追答

本回答被提问者采纳

c语言中将一个浮点型赋值给整型时,会不会四舍五入?

c语言中将一个浮点型赋值给整型时,不会四舍五入,会直接舍去小数部分的数据,也可以认为是执行了下取整运算。

将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。

例如执行赋值后,无论5.4还是5.6都会变成5。

扩展资料:

C语言中其它数据类型的转换:

1、单、双精度浮点型

由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。

2、char型与int型

int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。

char型数值赋给int型变量时, 一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。

3、int型与long型

long型数据赋给int型变量时,将低16位值送给int型变量,而将高16 位截断舍弃。(这里假定int型占两个字节)。 将int型数据送给long型变量时,其外部值保持不变,而内部形式有所改变。

参考资料来源:百度百科-C语言类型强制转换

参考技术A

c语言中将一个浮点型赋值给整型时,不会四舍五入,会直接舍去小数部分的数据,也可以认为是执行了下取整运算。

将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。

例如执行赋值后,无论5.4还是5.6都会变成5。

扩展资料:

C语言中其它数据类型的转换:

1、单、双精度浮点型

由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。

2、char型与int型

int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。

char型数值赋给int型变量时, 一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。

3、int型与long型

long型数据赋给int型变量时,将低16位值送给int型变量,而将高16 位截断舍弃。(这里假定int型占两个字节)。 将int型数据送给long型变量时,其外部值保持不变,而内部形式有所改变。

参考资料来源:百度百科-C语言类型强制转换

参考技术B 不会的,不过可以写一个函数自己转换啊
#include<stdio.h>
int fun(float x)
int a=(int)x;

if(a+0.5 > x)
return a;
else
return a+1;

int main()
printf("%d\n",fun(3.49));
printf("%d\n",fun(3.5));

return 0;
打印的为3和4,C语言很灵活的,楼主想要什么几乎都能实现本回答被提问者采纳
参考技术C

不会的,看程序的运行结果:

参考技术D 你好,不会的。浮点型数据赋给整型时,浮点型就会被自动转换成整型,整型只是整数部分。
希望能够帮到你。

以上是关于怎么将c语言中一个浮点型数据的整数部分与小数部分提取出来的主要内容,如果未能解决你的问题,请参考以下文章

C语言中显示小数部分

c语言中将一个浮点型赋值给整型时,会不会四舍五入?

C语言中float型数据怎么 取整数部分算法 或取小数部分

C语言第五题,怎么让它输出整数部分?

精度浮点型数据精确到了几位小数呢?

c 语言中除号仅用于整数间吗?