1浮点型小数点后都有6位小数吗?float i=23.56;printf("%f\n",i);这个程序输出得23.559999,为什么会这样呢

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 15:58:41

1浮点型小数点后都有6位小数吗?float i=23.56;printf("%f\n",i);这个程序输出得23.559999,为什么会这样呢
1浮点型小数点后都有6位小数吗?
float i=23.56;
printf("%f\n",i);
这个程序输出得23.559999,为什么会这样呢

1浮点型小数点后都有6位小数吗?float i=23.56;printf("%f\n",i);这个程序输出得23.559999,为什么会这样呢
计算机中,浮点形变量是用二进制记录的,而不是十进制
也就是说,在内存中,十进制浮点23.56被记录成了二进制科学计数法2^4*(1.01111000111……)2
(111)2表示二进制数111
由于23.56无法用二进制表示成有限小数,而计算机只可能记录有限的位数,因此记录的时候不可避免会有一定误差
输出的时候,再由二进制转换为十进制,就会出现上面的结果了
至于输出了小数点后6位,这与所输出的数本身的精度无关,纯粹是printf函数在没有指定输出精度的时候默认的
假如你想输出到小数点后3位,可以这样:
printf("%.3f\n",i);
这样就会输出成23.560

1浮点型小数点后都有6位小数吗?float i=23.56;printf(%f ,i);这个程序输出得23.559999,为什么会这样呢 c语言中浮点数四舍五入 .保留一个浮点数小数点后的6位,第3位要四舍五入.如 1.1234.567到1234.570000 double型浮点数能精确到多少位小数如题 6分之7化成小数,小数点后第1位到2003位上的数字和是多少? 7分之6化成小数,小数点后第1位到2003位上的数字和是多少? 6/7化成小数,小数点后第1位到2003位上的数字和是多少 C语言中如何用实验的方法确定double型浮点数能精确到多少位小数? 只能输入数字、小数点(小数点后面两位小数)和-1正则表达式 请教两浮点数相除的问题msp430单片机如何处理小数的除法,如果两个浮点数相除得到的是多少,比如我用的float t; t=4095/1042=3.0 .跟实际值相差很多.按说t是浮点数应该得到小数点后面许多位的啊, 用3、6、5和小数点可以组成的两位小数有(),请解释一下两位小数是什么? 由7,9,6,和小数点组成的最大两位小数和最小两位小数的平均数 在C语言中单精度浮点和双精度浮点小数点后有几位小数还有在VFP中双精度和单精度分别有几位小数 把一个小数的小数点向右移动1位,这个小数就增加了19.8,这个小数是? C语言:谁能给我解释一下浮点型,这种数据类型啊?该在什么时候用啊?用于哪种数据啊?比如几位小数点之类的. 一个1位小数,把小数点向左移动1位得到的两位小数比原数小11.25,原来的小数是多 用C语言怎么实现浮点数的四舍五入,保留两位小数点 数字0,0,7,6和小数点组成(1)只读一个“零”的一位小数;(2)读两个“零”的两位小数 浮点型是四个字节,但是DS18B 20中的定义是2字节的有符号的前六个表示符号位(全0或全1),后四位表示小数怎么把这个数换为十进制?