Octave GNU/倍频程中有理数的比较与数值精度无关

Octave GNU/倍频程中有理数的比较与数值精度无关,octave,precision,equality,rational-number,Octave,Precision,Equality,Rational Number,倍频程解释器将此表达式计算为false: >> 2/3 + 1/6 == 5/6 ans = 0 原因 使用rat(或rats)函数或强制转换值可以避免这种情况,但结果表达式缺少初始表达式的清晰格式: >> all(rat(2/3 + 1/6) == rat(5/6)) ans = 1 >> single(2/3 + 1/6) == single(5/6) ans = 1 当用八度音阶教孩子们算术时,数学表达式的“肮脏”翻译是没有用的 是否可以进行任

倍频程解释器将此表达式计算为false:

>> 2/3 + 1/6 == 5/6
ans = 0
原因

使用
rat
(或
rats
)函数或强制转换值可以避免这种情况,但结果表达式缺少初始表达式的清晰格式:

>> all(rat(2/3 + 1/6) == rat(5/6))
ans =  1

>> single(2/3 + 1/6) == single(5/6)
ans =  1
当用八度音阶教孩子们算术时,数学表达式的“肮脏”翻译是没有用的

是否可以进行任何全局调整以将原始表达式计算为
true

Julia有一个类型并且是免费的。你不需要使用八度符号。你可以说笔记本是很好的教学工具。我的教授用这些来教学。例如


5//6

不要用八度音阶教孩子们算术。使用能够进行符号评估的软件,也许是Mathematica?@CrisLuengo Octave是自由和开放源码软件,Mathematica是世界上大多数学校负担不起的。这里列出了自由和开放源码软件的替代方案:很抱歉听到这个消息。从我链接的列表来看,(Python模块)似乎可以做您想要做的事情(它需要一些设置,但自动化起来很简单),或者(Axiom的更活跃的分支,看起来很陈旧)。祝你好运!
>> all(rat(2/3 + 1/6) == rat(5/6))
ans =  1

>> single(2/3 + 1/6) == single(5/6)
ans =  1
2//3+1//6