主题:关系表达式10*0.1=1的值为真为假?
marlene
[专家分:0] 发布于 2005-03-16 09:52:00
为什么0.1*10=1的值为假,而10*1=10的值为真呢?谢谢!
回复列表 (共21个回复)
21 楼
codepk [专家分:2800] 发布于 2005-03-18 23:39:00
faintzw说的很在理,但我要说的是,这是编译器的问题
为什么呢?
很清楚的,两个数要比较,肯定要同一类型是吧?那我就不明白了到底0.1*10给转成啥类型了,竟然我试过了任何类型都不相等,然道它是传说中的火星类型?
类型基本上就这么几种吧?
字符型,占半个通用寄存器
整型,一个通用寄存器
长整型,用两个通用寄存器表示
单精度,一个
双精度,两个
可能有错误,因为不是很熟(特别是单双精度.....谁告诉我下....)
那我想说了,它到底是哪种?竟然不能比较的?
为了测试传说中的basic是不是都这样
我用了freebasic 来测试
if 0.1*10=1 then print "true!"
结果true
手头没别的basic编译器了,如果谁有,结测试下
我来回复