[Bug] Calculator 分数运算中乘幂的Bug
>> (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)
------------------------