编程语言中,float是4字节,double8字节,但是我们都是以十进制的形式输出的,他们输出时保留几位有效数字

Int、short、long int、char呢?输出时都什么范围?保留极为有效数字??

这个问题困然很久了,尤其是浮点数!哪位高手帮帮忙啊,谢谢了!

告诉你浮点数的吧,也不用记得太麻烦。float是6~7位,double是15~16,整形的话按字节数计算。别的一般用不到的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-04
float:1bit(符号位) 8bits(指数位) 23bits(尾数位)精度为6~7位有效数字
double:1bit(符号位) 11bits(指数位) 52bits(尾数位)精度为15~16位本回答被网友采纳
第2个回答  2012-11-04
楼上所说并不是完全对,取值范围取决于编译器.
另外不同语言也是不同.
楼主所得是32位C语言的话.
整型 [signed] int -2147483648~+2147483648
无符号整型unsigned [int] 0~4294967295
短整型 short [int] -32768~32768
无符号短整型unsigned short [int] 0~65535
长整型 Long int -2147483648~+2147483648
无符号长整型unsigned [int] 0~4294967295
字符型[signed] char -128~+127
无符号字符型 unsigned char 0~255
单精度 float 3.4 x 10^(-38)~ 3.4 x 10^(+38)
双精度double 1.7 x 10^(-308)~ 1.7 x 10^(+308)
长双精度 long double 1.7 x 10^(-308)~ 1.7 x 10^(+308)追问

单精度 float 3.4 x 10^(-38)~ 3.4 x 10^(+38)
双精度double 1.7 x 10^(-308)~ 1.7 x 10^(+308)
长双精度 long double 1.7 x 10^(-308)~ 1.7 x 10^(+308)

这段太恐怖了,得要小数点后保留多少位啊,我们一般输出肯定没这么多位吧?

追答

小数点保留多少位,三个要点.
第一,取决你是32位编译器还是64位编译器.
第二,取决你的编译器.虽然同时32位编译器,但是保留小数位数不一定相同.
第三,格式化输出的时候,用户自己控制.

追问

除去用户自己控制之外,如果一个笔试题中输出一个浮点数,要你写出输出结果,那么输出的有效数字到底取多少位好呢?比如3.1415926,输出多少呢?

追答

有效位别人都说了.单精度有效位6-7位
如果你一个是输出3.1415926 那么属于单精度的有效位内.
所以会完整输出.如果超过7位,那么就会"截断"7位后面的(可舍可入,并不一定是4舍5入)
如果不超过7位,除非用户指定,否则保留原来精度.
假设原来 3.14 直接格式化输出的话就是3.14
如果是3. 111222333

那么输出结果可能为 3.1112224 也可能为3.1112223

追问

3.1112224,8位有效数字,多了点吧

相似回答