双精度赋值给单精度
答:将一个双精度型数据赋给单精度变量时,截取其前面7为有效数字,存放到单精度便领的存储单元(4个字节中。但应注意数值范围不应超过单精度型数据的范围。将一个单精度型数据赋给双精度变量时,数值不变,有效位数扩展到16位,在内存中以8个字节存储 ...
答:转换的时候高精度向低精度转换越界,失败后就会变为默认值0吧?
答:float a = 3.14;这个语句的意思是把双精度浮点类型(double)赋值给单精度浮点类型(float)的变量a,把一个高精度的数赋值给一个低精度的数,就会照成精度丢失了。因为Java中,3.14这样的写法默认是认为double类型的,而3.14f这样的写法就会指定3.14这个数为float类型,这样赋值就不会有精度丢失了...
答:如果要避免出现将双精度数赋值给单精度数时的警告,可以用下法一试?float x;double y=2.31;x=(float)y;
答:100.0d是双精度浮点型的,双精度浮点型所能表示的数值比单精度更精确,范围也更广。将双精度浮点型赋值给单精度浮点型必然会发生精度丢失。你可以 double d = 100.0d;float f = d;System.out.println(d);System.out.println(f);可以看出来,这两个结果是不一样的。所有数值范围大的数据类型在...
答:一个单精度精度数和一个双精度数在matlab里面是这样存储的 先将浮点数3.5转换成其逻辑上的2进制,比如3.5对应的2进制为11.1,然后写成科学计数1.11*2^1 容易知道,写成科学计数法之后第一位一定是1,所以这一位不用管,只记录其尾数(1.11)11,其指数是1,符号是正号(0)单精度的格式 X ...
答:在C编译系统中,系统默认所有的的浮点型数据为双精度的(也就是double型)。你把一个双精度的数据赋值给一个单精度数据好比把实形数据赋值给整形数据。这样系统就会进行适当的取舍,就会影响到你数据的精度。最终形成了你所说的现象。
答:因为现在的机器配置都提高了,很多函数计算时使用的内存也增加了很多空间,如sqrt()函数在其运算过程中和最终产生的结果时,机器都是使用的double类型的数值,所以它的返回置就是一个双精度浮点数,也就是double型。但是你让它的赋给q,而q是一个float型,所以产生一个数据类型转换,并且这个转换是精度...
答:java编译器看到 0.1,会自动认为是double类型的值。float f1 = 0.1; 会认为把一个双精度的值赋予一个单精度浮点数。这种情况下,java不会为我们自动转换,只会报错提醒。修改的方法有两个:1. 明确指定0.1是个单精度浮点数,然后赋值给f1. 即 float f1= 0.1f ; //后加f 2. 手动强制...
答:1.单精度浮点数变量的赋值:float f=0.5f;//0.5f表明该常数为单精度数。也可以写成 float f=0.5;//0.5表明该常数为双精度浮点数,当然,也可赋值于一个单精度变量。2.双精度浮点数变量的赋值:double d=0.5;//给一个双精度浮点数赋予0.5。double d=0.5;/*给一个双精度浮点数赋予一...
网友评论:
帅罗19488412209:
java丢失精度问题
6893钦匡
: float a = 3.14;这个语句的意思是把双精度浮点类型(double)赋值给单精度浮点类型(float)的变量a,把一个高精度的数赋值给一个低精度的数,就会照成精度丢失了.因为Java中,3.14这样的写法默认是认为double类型的,而3.14f这样的写法就会指定3.14这个数为float类型,这样赋值就不会有精度丢失了.注意,这里你不要单纯的把float想像成只能存一位小数点的数,3.14这个数同样用float可以存下
帅罗19488412209:
如何在VB中将64位双精度浮点数转换成单精度浮点数 -
6893钦匡
: Dim a As Double, b As Single a = 3.1415926 b = a '直接赋值即可,VB会自动转换的 b = CSng(a) '如果你不放心,那么也可以这样转换
帅罗19488412209:
simulink中怎么把双精度改成单精度?
6893钦匡
: 加一个convert模块,将convert的输出数据类型设置为single
帅罗19488412209:
java作业求解答———— -
6893钦匡
: 10.0f是单精度浮点型的,100.0d是双精度浮点型的,双精度浮点型所能表示的数值比单精度更精确,范围也更广.将双精度浮点型赋值给单精度浮点型必然会发生精度丢失.你可以 double d = 100.0d; float f = d; System.out.println(d); System.out.println(f); 可以看出来,这两个结果是不一样的.所有数值范围大的数据类型在转换为数值范围小的数据类型的时候都会发生精度丢失.
帅罗19488412209:
C语言 当整数赋给双精度和单精度数,有效数字一般为几位? -
6893钦匡
: 不一样 在vc6.0环境下都是小数后6位 不过一般来说 float是7位 而double是12-16
帅罗19488412209:
关于C++6.0中单精度与双精度的问题 -
6893钦匡
: 单精度 乘单精度 结果是单精度,其值只保留到单精度 这时赋值给 双精度也只能打出单精度.
帅罗19488412209:
c语言实型变量问题 -
6893钦匡
: 在C编译系统中,系统默认所有的的浮点型数据为双精度的(也就是double型).你把一个双精度的数据赋值给一个单精度数据好比把实形数据赋值给整形数据.这样系统就会进行适当的取舍,就会影响到你数据的精度.最终形成了你所说的现象.
帅罗19488412209:
天啊,这个双精度浮点数据转换为单精度浮点型数据是怎么来的啊,求详细解释 -
6893钦匡
: 看看float和double在内存中的存在形式你就明白他们的差异了: 1、float 单精度+- +-------- +-----------------------+ |符号位1bit | 指数位 8bit | 尾数部分23bit 2、double 双精度 +- +----------- +-----------------------...---+ |符号位1bit |指数位 11bit | 尾数部分52bit 然后要知道他们的精度便一清二楚了
帅罗19488412209:
双精度数和单精度数怎么转换?C语言 -
6893钦匡
: 用强制类型转换float(a)或者double(a)
帅罗19488412209:
C语言中给浮点数赋值问题 -
6893钦匡
: float D=0.5; // 这叫声明和初始化.愿意写 float D=0.5f; 也可以.常数 0.5 默认 处理成 double 型.0.5f 规定 它 是 float 型.其实这不是什么大问题.相对C语言中别的问题,这个可以完全忽略.---------------------------- float D; // 这叫声明.D=0.5; ...