c语言中的 float的什么 精确到多少位多少位到底是怎么算的??
书上分析的就是float在内存中的储存是反三段的:[符号位][小数部分][指数部分]小数部分是采用规范化的指数形式来表示!(至于符号位和指数部分大家一看就明白是什么意思了...
书上分析的就是 float在内存中的储存是 反三段的:
[符号位][小数部分][指数部分] 小数部分是采用规范化的指数形式来表示!(至于符号位 和指数部分 大家一看就明白是什么意思了)
我的问题就是 在具体分析一个实型数据的时候 关于精确到多少位多少位的情况,是以 这里的[小数部分]为依据的吧??
也就说比如 精确到7位 那就是取 [小数部分]中的七位??(不包括小数点)
什么我的猜测是正确的啊?那如果有一个数据是a=12345678.888那按照实行数据在内存中的存储形式是[符号位][小数部分(采用规范化的指数形式)][指数部分]
这样来分析的话,那么a就应该是这样的[+][0.12345678888][8]的咯? 小数部分是7位有效的 即0.12345678888中取到0.1234567 后面的都是不准确的咯??那这样
不大错特错了么? 展开
[符号位][小数部分][指数部分] 小数部分是采用规范化的指数形式来表示!(至于符号位 和指数部分 大家一看就明白是什么意思了)
我的问题就是 在具体分析一个实型数据的时候 关于精确到多少位多少位的情况,是以 这里的[小数部分]为依据的吧??
也就说比如 精确到7位 那就是取 [小数部分]中的七位??(不包括小数点)
什么我的猜测是正确的啊?那如果有一个数据是a=12345678.888那按照实行数据在内存中的存储形式是[符号位][小数部分(采用规范化的指数形式)][指数部分]
这样来分析的话,那么a就应该是这样的[+][0.12345678888][8]的咯? 小数部分是7位有效的 即0.12345678888中取到0.1234567 后面的都是不准确的咯??那这样
不大错特错了么? 展开
2个回答
展开全部
一个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位小数。
float f=10.3576;//精确到2位
printf("%.2f",f);//结果为10.36
int printf( const char *format, ... );printf函数根据format给出的格式打印输出到STDOUT(标准输出)。用%m.nf精度修饰符让你指定想要的小数位数, 例如,%12.6f表示用12位显示(含小数点及所有数字),小数点后保留6位小数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询