#include "stdio.h" int main(void) { float a; int b; a=222222222; b=(int)a; printf("%d",b); }
引用 19 楼 zhang20072844 的回复:引用 18 楼 sdchenchen2012 的回复:引用 17 楼 zhao4zhong1 的回复:C/C++ code?12 float a; a=222222222;犯了两个错误 一.float最多容纳6位10进制有效数字 二.float常量需要加后缀f 纠正后: C/C++ code?1 a=2.2222……
引用 21 楼 sdchenchen2012 的回复:引用 19 楼 zhang20072844 的回复:引用 18 楼 sdchenchen2012 的回复:引用 17 楼 zhao4zhong1 的回复:C/C++ code?12 float a; a=222222222;犯了两个错误 一.float最多容纳6位10进制有效数字 二.float常量需要加后缀f ……
float a; a=222222222;
a=2.22222+e8f;
引用 18 楼 sdchenchen2012 的回复:引用 17 楼 zhao4zhong1 的回复:C/C++ code?12 float a; a=222222222;犯了两个错误 一.float最多容纳6位10进制有效数字 二.float常量需要加后缀f 纠正后: C/C++ code?1 a=2.22222+e8f; 为什么只能是6位10进制 ……
引用 17 楼 zhao4zhong1 的回复:C/C++ code?12 float a; a=222222222;犯了两个错误 一.float最多容纳6位10进制有效数字 二.float常量需要加后缀f 纠正后: C/C++ code?1 a=2.22222+e8f; 为什么只能是6位10进制 我看了标准了,不知道这个6是怎么计算出来的
C/C++ code?12 float a; a=222222222;犯了两个错误 一.float最多容纳6位10进制有效数字 二.float常量需要加后缀f 纠正后: C/C++ code?1 a=2.22222+e8f;
float的有效位数没有那么多。 将a定义成double。
6楼的回答很完整啊!
存放格式不一样的。 如果不解可搜索浮点的二进制表示。
float的精度是由尾数的位数来决定的。float只有23位是表示数的,其他位用来表示数的符号以及阶码 float:2^23 = 8388608,一共七位数字,这意味着最多能有7位有效数字,但绝对能保证的为6位 222222222有9个有效数字,因此用float表示会丢失精度,因此,要保证9个有效数字不丢失精度,你必须 使用double 而不是float.……
本帖最后由 zjtzlqr 于 2013-02-19 09:38:56 编辑 C/C++ code?123456789#include "stdio.h"int main(void){ float a; int b; a=222222222; b=(int)a; printf("%d",b);} ……
70,011
社区成员
243,256
社区内容
加载中
试试用AI创作助手写篇文章吧