float 型数值有效位数为6位是什么意思?
答案:3 悬赏:10 手机版
解决时间 2021-03-30 22:20
- 提问者网友:饥饿走向夜
- 2021-03-30 07:33
float 型数值有效位数为6位是什么意思?
最佳答案
- 五星知识达人网友:由着我着迷
- 2021-03-30 08:53
float 为单精度浮点型,有效数字为6~7位;double 为双精度,有效数字为15~16; 但他们在输出时,小数点后都有6位小数。例如3.123456追问例如11111.111111后面的五个1都不是有效数字
0.111111这里的1都是有效数字对吗?
float ,double型数据在输出时,小数点后都一定要加上相应的小数?
0.111111这里的1都是有效数字对吗?
float ,double型数据在输出时,小数点后都一定要加上相应的小数?
全部回答
- 1楼网友:旧脸谱
- 2021-03-30 09:54
有效数字为六位
- 2楼网友:持酒劝斜阳
- 2021-03-30 09:40
float的有效数字是6或7位,第7位不一定有效,前6位一定有效//具体翻书
下面解释有效数字是6位的意思:
float f = 3.123456
printf("%f",f);
输出结果可靠数据是前6位,即,3.12345
float f = 123456.789
printf("%.2f",f);
因为要求输出结果保留两位,所以输出结果小数点后会有两位,但是!这两位小数保留的毫无意义,因为它不可靠,可靠的6位有效数字已经被整数部分的123456占完了。
根据以上,楼主可以自行给 f 赋各种不同值,多次调整整数部分与小数部分的位数和大小,查看输出,相信你会发现,输出结果,从左数,只有前6位是一定准确的!
如例1:
#include
int main () {
float f = 1234560.991f;
printf("%f",f);
return 0;
}
输出结果是:1234561.000000
例2:
#include
int main () {
float f = 1.913757f;
printf("%.10f",f);
return 0;
}
输出结果是1.9137569666,对比,只有5位小数是精确的,答案还是6位。
综上,所以精确度是6位,意思是前6位一定精确,6位以后的可能精确,可能不精确。
下面解释有效数字是6位的意思:
float f = 3.123456
printf("%f",f);
输出结果可靠数据是前6位,即,3.12345
float f = 123456.789
printf("%.2f",f);
因为要求输出结果保留两位,所以输出结果小数点后会有两位,但是!这两位小数保留的毫无意义,因为它不可靠,可靠的6位有效数字已经被整数部分的123456占完了。
根据以上,楼主可以自行给 f 赋各种不同值,多次调整整数部分与小数部分的位数和大小,查看输出,相信你会发现,输出结果,从左数,只有前6位是一定准确的!
如例1:
#include
int main () {
float f = 1234560.991f;
printf("%f",f);
return 0;
}
输出结果是:1234561.000000
例2:
#include
int main () {
float f = 1.913757f;
printf("%.10f",f);
return 0;
}
输出结果是1.9137569666,对比,只有5位小数是精确的,答案还是6位。
综上,所以精确度是6位,意思是前6位一定精确,6位以后的可能精确,可能不精确。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯