Несмотря на ошибки округления чисел с плавающей точкой, причина неправильного результата связана с использованием целочисленной арифметики с переполнением в типе: В 64-разрядной ОС 10 ^ 29 переполнений (в JULIA без ошибок).
64-Bit OS: 10^18 = = 1000000000000000000 (64-Bit Integers can hold up to ~ 9,22x10^18)
while: 10^19 turns to: -8446744073709551616 which is wrong, due to overflowing.
Если вы выберете тип capabale для хранения значения, результат будет правильным: например:
julia> -1.259237254330301e-29*Int128(10)^29
-1.2592372543303008
или:
julia> -1.259237254330301e-29*big(10)^29
-1.259237254330300936796903330938514872571882315563023692882767533667837970629477