c语言中的 float的什么 精确到多少位多少位到底是怎么算的??

来源:百度知道 编辑:UC知道 时间:2024/05/07 08:56:59
书上分析的就是 float在内存中的储存是 反三段的:
[符号位][小数部分][指数部分] 小数部分是采用规范化的指数形式来表示!(至于符号位 和指数部分 大家一看就明白是什么意思了)
我的问题就是 在具体分析一个实型数据的时候 关于精确到多少位多少位的情况,是以 这里的[小数部分]为依据的吧??

也就说比如 精确到7位 那就是取 [小数部分]中的七位??(不包括小数点)
什么我的猜测是正确的啊?那如果有一个数据是a=12345678.888那按照实行数据在内存中的存储形式是[符号位][小数部分(采用规范化的指数形式)][指数部分]
这样来分析的话,那么a就应该是这样的[+][0.12345678888][8]的咯? 小数部分是7位有效的 即0.12345678888中取到0.1234567 后面的都是不准确的咯??那这样
不大错特错了么?

具体分析一个实型数据的时候,精确到多少位就表示小数点后面多少位,你的猜测是正确的。

一个float型数据,通常说精确到多少位就表示精确到小数点后多少位,可以通过printf实现。例如,

float f=10.3576;//精确到2位
printf("%.2f",f);//结果为10.36

int printf( const char *format, ... );printf函数根据format给出的格式打印输出到STDOUT(标准输出)。用%m.nf精度修饰符让你指定想要的小数位数, 例如,%12.6f表示用12位显示(含小数点及所有数字),小数点后保留6位小数。