问题

软件 >> Calculator
Questions in category: Calculator (Calculator).

[Bug] Calculator 分数运算中乘幂的Bug

Posted by haifeng on 2022-08-22 08:01:54 last update 2023-07-08 08:50:00 | Answers (0) | 收藏


>> (1/5+1/3)^2
in> (1/5+1/3)^2

out> 7111111|25000000


实际上应等于 64|225

>> (1/5+1/3)*(1/5+1/3)
in> (1/5+1/3)*(1/5+1/3)

out> 64|225


[分析原因]

>> 64/225
in> 64/225

out> 0.28444444

------------------------


>> 7111111/25000000
in> 7111111/25000000

out> 0.28444444

这两个分数在

(1/5+1/3)^2 在分数模式下, 仍然将 (1/5+1/3) 作数值计算, 得到 0.53333333, 然后再进行分数运算.

>> 0.53333333^2
in> 0.53333333^2

out> 7111111|25000000


注: 这个 Bug 是在使用数字帝国上的分数运算器发现的.

分数计算器 (1/5+1/3)^2 (numberempire.com)


现在 Bug 已经解决.

>> :mode=fraction
Switch into fraction calculating mode.
e.g., 1/2+1/3 will return 5/6

>> (1/5+1/3)^(2)
in> (1/5+1/3)^(2)

out> 64|225

------------------------


>> (1/5+1/3)^(1/2)
in> (1/5+1/3)^(1/2)

out> sqrtn(8,2)|sqrtn(15,2)

------------------------

v0.562

修改BigNumber.cpp 中的 EvalForFractionMode() 函数,  将结果显示为

>>  (1/5+1/3)^(1/2)
in> (1/5+1/3)^(1/2)

out> 2*sqrtn(2, 2)|sqrtn(15, 2)

------------------------