VBA中Single正数范围是1.401298x10^-45到3.402823x10^38,那为什么A是Single,A=123456789输出后数不对?

123456789肯定小于3.402823x10^38吧?那怎么显示不出来呢 .........
我试了各种数字和运算,好像只有7位数是准的?这是为什么呢

精度、范围是浮点数的两个方面,单精度的有效数字只有6位,一般都使用双精度(Double),它有15位有效数字。实际上数值表达式计算的时候内部都是先转换位双精度进行计算,然后按照变量类型对结果进行转换,双精度变量的运算反而不单精度快速。同样的道理,long比integer要快。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-10-12
单精度浮点数的精度是小数点后6位
123456789=1.23456789E8
保留6位,1.234567,后面就有浮点误差了
用long型就可以了,就一点点数据纠结数据类型
第2个回答  2021-10-12
从你给定的这个式子来说,它取值的范围是不,准确的。
但是我们要取一个极限值,可以在图表当中去对比。追问

不准确的原因呢?这才9位数的整数,也不知道怎么回事就数不对 ........

第3个回答  2021-10-12
你要定义为长整数:Dim a as long追问

哎....有小数不是,数字有7列10w多行,挺麻烦的,每次都得分类分摊给不同的人去处理,然后再汇总到一起。还想着用Single能跑表跑快点......... 毕竟照这个节奏发展下去,明年这时候指不定得多少行呢

追答

用数组跑得快

相似回答