SmileBASIC can handle numerical precision up to a certain point. When the numbers get too big, SmileBASIC deals with it by replacing the last digits with 0.
My Android calculator shows "1.23456790E+16" instead, prompting us to interpret it as 12345679000000000.
12345678987654321 (actual)
12345678987654320 (SB)
12345679000000000 (Android)
SB is much, much closer!
Your Android calculator just pretty-prints the result. Internally, both Android and SB use the same floating-point standard: the IEEE 754 double. The Android will get the same result as SB (at least it should, or something is very wrong), but most people don't want to look at a number that long so it makes it look fancy.
Of course, you may have known that already.