分析如下:
一种简单的办法是直接强制转换到int型就是整数部分。减去这个int型就是小数部分了。
代码如下:
float n=12.223
int x=(int)n
float y=n-(float)x
得出的x为数据的整数部分,y为数据的小数部分。
拓展资料:
浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。尾数表示一个介于 1.0 和 2.0 之间的数。由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在-3.4E+38 和 3.4E+38 之间的范围。
(资料来源:百度百科:FLOAT)
我测试了一下,你的结果可能写反了。而且,测试中发现,如果是short、int类型就没有问题,只是unsigned short , unsigned int有问题
查阅资料也没有非常清晰的说明。
我觉得应该算是C的一个BUG。再等高人吧,看看有没有更清楚的大师。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)