float+f+111为什么不可以
答:>>>float(1)1.0>>> float(11)11.0>>> float(-111.5)-111.5>>> float('111') # 字符串111.0
答:它还没有int的精度高,因为int是32位表示,float只有23位有效值,其他是符号位和指数。float在内存里也是4个字节这四个字节和int的那种指定是不一样的 虽然都是0和1 但是指定有某些位是表示点的位置的 某些位是表示是多少次方的,这些都可能是硬性规定的,所以就实现了你说的这种情况被 举个例子 ...
答:c语言中,float占4个字节,每位字节占8位,所以最大数应该是2^32-1;变量的储存形式就应该是占着内存,就是一个空间
答:以下是我自己的理解,不知对否:1.在将实参传递给形参后,所传递的值的类型应为函数中形参的类型,若传递的值的类型与形参类型不一致,则强制类型转换;2.函数的返回值类型最终由函数名称前的类型决定,与return后的类型无关;3.至于为什么会显示"假int型",是因为cout在输出float等类型时,自动省略了小数点...
答:浮点数分为float和double,分别占4,8个字节,即32,64位。仅以32位的float为例,附带说ble。在IEEE754标准中规定,float的32位这样分:符号位(S)1 阶码(E)8 尾数(M)23。浮点型变量取值范围 是按 国际标准IEEE 754规定出来的。例如,浮点数总位数,哪个是数值符号位,版哪几权位是指数位,哪几...
答:int转float丢失数据说的是精度丢失。在C语言中,int是整型变量,其代表的是准确值。而float是单精度浮点数,其本身是有精度限制的。也就是说,存在float变量中的数据,可能看起来是那个数,打印出来也是,但是实际存的是一个很接近但是并不准确的值。比如int的值是1000,转成float之后,可能存的就是...
答:最普遍的状况,当exp的位模式既不是全为0也不是全为1时,就都属于这种状况。此时,指数域解释为偏置形式,E = e-Bias(e减Bias),e是无符号数,而Bias是一个等于2^(k-1) -1的偏置值。由此产生了指数的取值范围,float: -126~127,double: -1022~1023 小数域解释为描述小数值f,在0~1...
答:void output(float a[],int n){ for(int i=0;i<n;i++)printf("%7.2f",a[i]);} void putatob(float a[],float b[],int n){ int l=n/2,k=0;for(int i=l;i<n;i++)b[k++]=a[i];output(b,k);//调用输出函数 } main(){ float a[111],b[111];int n,m=0;sc...
答:没给你做完。刚考完C吹风了头疼,明天再帮你看~107. 设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f 的值的数据类型为---.(A) int (B) float (C) double (D) 不确定 C 取精度最高的作为结果的精度 108. putchar函数可以向终端输出一个---。(A) 整型变量表达式值 (...
答:由于0.2356是正的,所以在第31位放入“0”。由于我们把小数点右移了,所以在第30位放入“0”。因为小数点被右移了3位,所以将3化为二进制,在左边补“0”补足七位,得到0000011,各位取反,得到1111100,放入第29到第23位。最后表示0.2356为:0 0 1111100 11100010100000100100000 ...
网友评论:
父狭15163131553:
float f=f+1.1;是不是正确定义且赋值的语句?为什么? -
15748逄卢
: 正确答案:b 分析:a,虽然编译没错,但是因为f没有赋初值,所以f的值为随机值. c,n2没有定义不可以直接使用. d,e后面应该跟+、-,两位整数
父狭15163131553:
java为什么float f = 1.01;是不合法声明,为什么? -
15748逄卢
: 因为Java里带有小数点的数默认是double类型,所以1.01在这里是double类型,把他赋值给比他小的float类型就会出错.你想通过编译的话有3种方法改: double f=1.01; 或者 float f=1.01f; 或者 float f=(float)1.01;
父狭15163131553:
C语言中下面的语句对吗?哪个地方错了? float f=f+1.1;谢谢 -
15748逄卢
: 不对啊,你这么写相当于用 f+1.1来初始化 f ,但是f还没有初始化呢,你就用f了,这不是有问题么.
父狭15163131553:
float f=f+1.1错在哪里了 -
15748逄卢
: f 没有初始值
父狭15163131553:
Java float类型加法运算为什么是这个结果?20.8f+10.4f=31.199999 -
15748逄卢
: 个人认为就是不同进制数字表现差异.举例:double result = 1.0 - 0.9; 这个结果不用说了吧,都知道了,0.09999999999999998 float和double类型主要是为了科学计算和工程计算而设计的.他们执行二进制浮点运算,这是为了在广泛的数字范...
父狭15163131553:
float后加f为什么就能转换成double类型 -
15748逄卢
: 可以这样来定义一个double型的 double d = 0.1; 然而,这样不可以通过 float f = 0.1;来定义一个float型的,这是因为默认的小数是double型的 要定义一个float型的,有两种方式 float f = 0.1f; 或者 float f = (float)0.1; 相互之间的转化:举个例子...
父狭15163131553:
C语言 float a=1.1f 输出a值显示是0.11e10 还是0.111111e10 -
15748逄卢
: 不会成为 0.11e10 , 也不会成为 0.111111e10float a=1.1f; printf("%g\n", a ); 输出 1.1如果用默认 %f %e 格式输出: printf("%e %f\n", a,a ); 输出 1.100000e+000 1.100000
父狭15163131553:
float,double,赋值时候为什么要加f,d.例如:double a=0.1d;float b=0.2f; -
15748逄卢
: 后面带的小写字母是用于区别数据类型.float(单精度浮点型)float类型通常32位,取值范围是10-38~10+38 Double(双精度浮点型)变量存储为 IEEE 64 位(8 个字节)浮点数值的形式,它的范围在负数的时候是从 -1.79769313486232E...
父狭15163131553:
java中:float f1=0.1f;float f2=123.88f;float f3=f1+f2;为什么编译是正确的.为什么不用加上强制转换符 -
15748逄卢
: 你已经对f1+f2进行了控制,结果为float类型 下面为double转float方法 float f = 127.1f; BigDecimal b = new BigDecimal(String.valueOf(f)); double d = b.doubleValue(); System.out.println(d);
父狭15163131553:
浮点变量+f的问题
15748逄卢
: 数字后面加f是表明该数字为单精度浮点型数字(float);类似地,后面如果加d则是表明该数字为双精度浮点型数字(double).如果在代码中使用一个小数而没有加任何后缀,则此数字自动视为double类型. 回到问题本身.float x = 3.14f; 是一个声明赋值语句.如果3.14后面不加后缀f,则系统将认定3.14是double类型的常量,并将double类型赋值到float类型的x变量中.而double变为float是丢失精度的,因此它被编译器认定为带有危险性的行为,一般会弹出一个Warning.所以,在为float类型赋值常量时,通常在后面加后缀f,通知编译器常量的类型是float,以避免被编译器误判为丢失精度.