У меня есть следующий тестовый случай:Большие числа Lua печатаются неправильно
Lua 5.3.2 Copyright (C) 1994-2015 Lua.org, PUC-Rio
> foo = 1000000000000000000
> bar = foo + 1
> bar
1000000000000000001
> string.format("%.0f", foo)
1000000000000000000
> string.format("%.0f", bar)
1000000000000000000
Это последняя строка должна быть 1000000000000000001
, так как это значение bar
, но по какой-то причине это не так. Это относится не только к 1000000000000000000
, я еще не нашел другого номера над тем, который дает правильное значение. Может ли кто-нибудь дать объяснение, почему это происходит?