I am making a game that requires showing huge numbers. So instead of 128123000000000000000000000000000000000 it will be shown as 128.123 undecillion. To do that, I need to use a base 10 log function, but the ‘log’ in the app inventor is actually ln(). Is it a bug or is it supposed to be like that, a base-e log instead of a normal base-10 log?
See here:
https://groups.google.com/forum/#!topic/mitappinventortest/HE_HJ6Iuck4
and here:
https://groups.google.com/forum/#!msg/mitappinventortest/fN_VSPWhV-4/dPmJenJf6CkJ
EDIT: didn’t realize this was one month old! Sorry about that.
Ideally there should be two blocks, a “log” block that does log10 and an “ln” block that does ln or loge. This would match the behavior of the TI-84 (a common graphing calculator, at least in the US) and many scientific calculators which use log( to denote base 10 and ln( to denote base e.
Is there a reason why this is not the case already? Since App Inventor is educational, I think it would make more sense to match what most students’ textbooks would say.
(A third block could be added, “log” with a custom base, which could be used without having to use the change of base formula seen in @ABG’s post.)
I would guess that the designers of AI2 wanted to keep it small and simple, to make it more accessible to beginners.
A pile of blocks is easier to scale than a wall of blocks.
Makes sense.
EDIT: @ABG Since App Inventor is educational, I think it would make more sense to match what most students’ textbooks would say. This would make it even easier for beginners.
Regarding log vs ln10, there might be a cultural prejudice at play here too.
I have seen it in the degrees vs radians question for AI2 trig blocks vs Excel trig functions.
The factions in this cultural war are engineers vs mathematicians.
Depending on the school, computer courses might fall under either an engineering department or a math department.
There’s no fight here, just an acknowledgement of differences.