两用方法,第一种是直接把那几个变量声明就声明成double类型。或者在报错的地方加强制转换就行了。不过从double强制转换为float的时候,如果你事先在double存的数字超出float的极限就会丢失数据,并且double可以表示比float更长的小数位,强转为float无法避免的会丢失这些小数位 ...
关于丢失数据,是因为double的精度比float要高,如果将double转换为float会损失精度。双精度浮点数(double)是计算机使用的一种数据类型。比起单精度浮点数,双精度浮点数(double)使用 64 位(8字节) 来存储一个浮点数。 它可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是1.7x10...
area=2*3.14*r*r+3.14*r*2*h;3.14是double型,整个表达式升为double型 float型跟别的数据运算也会升为double型
> #define JBSJ 40 //基本工作时间 #define SL_O 0.15 #define SL_T 0.20 #define SL_S 0.25 #define MY_O 300 #define MY_T 150 #define MY_O_S MY_OSL_O #define MY_T_S MY_TSL_S+MY_O_S #define GZDJ 10 int main(void) { float time; float xs_zj; float xs_sn; float sj...
或者在报错的地方加强制转换就行了。不过从double强制转换为float的时候,如果你事先在double存的数字超出float的极限就会丢失数据,并且double可以表示比float更长的小数位,强转为float无法避免的会丢失这些小数位 追问: 强制转换代码应该怎么写? 追答:如果一个double类型的变量名为d,转换为float的方法就是(float) ...