GNU / Octave中有理数的比较,与数字精度无关

时间:2018-05-24 16:03:39

标签: octave precision equality rational-number

Octave解释器将此表达式计算为false:

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

原因

>> 2/3 + 1/6 - 5/6
ans =   -1.11022302462516e-16

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

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

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

当使用Octave教孩子算术时,数学表达式的“脏”翻译是没有用的。

是否可以进行全局调整以评估true原始表达式?

1 个答案:

答案 0 :(得分:0)

Julia的rational numbers类型是免费的。您不需要使用Octave符号。你可以使用Jupyter notebook.注意笔记本电脑是很好的教学工具。我的教授用这些来教。一些例子是here.

2//3+1//6 

5 // 6