我在案例选择中遇到一些逻辑语句的问题。但是,我通过excel跟踪了一些奇怪的数学。当我期望它为假时,以下公式在即时窗口中评估为True
?(0.09 /0.1)<0.9
任何人都可以解释为什么会这样吗?
答案 0 :(得分:2)
Floating point arithmetic可能会在Excel中提供不准确的结果。
有关更深入的文章,请阅读What Every Computer Scientist Should Know About Floating-Point Arithmetic。
这是StackOverflow上的related question。
@scott在他的评论中有解决方案:
? round((0.09/0.1),1)<0.9
答案 1 :(得分:0)
这可能是因为vb将表达式转换为整数,该整数解析为零。试试
? CDBL((0.09/0.1) < 0.9