e记数法能进行运算吗?float和double类型的区别是什么?

img


请问一下上面这张图片的代码哪里错了,是不能用e记数进行运算吗?
3.156*10**7应该用float类型还是double类型?
这两种类型的的区别是什么?
谢谢!

我用自己的环境(vs2019)试了一下,没想到e计数法竟然可以,但是个人理解,尽量不要这么用,有的编译器可能不支持(需要看编译器是否支持)

float和double的区别,建议你百度一下,很清楚,大概描述就是:float占32位,double占64位,double比float表示的数可以更大,比float精度更高,同时消耗的内存也更大。

关于用float,double,还是其他类型,第一:数值特点,不需要小数点就用整数类型。 第二:数值范围,在能包含目标业务数字范围内的类型就够了

数值范围随便百度也有:这是我简单搜到的float(-3.410(-38)~3.410(38)) double(-1.710(-308)~1.710(308)),所以,就你的问题,float类型完全够用,但是,我在考虑,你的逻辑中,为什么不考虑整型,长整型呢? 甚至负数没有意义,为什么不考虑unsigned int呢

你的代码在main函数中的第四句没有加上取地址&,所以错了。float和double的区别如下:
float是单精度浮点型,double是双精度浮点型。float占4字节,double占8字节。float取值范围为10e-37到10e38,double取值范围为10e-307到10e308。
也就是说,double的取值范围更大,同时也占字节较多。