Аккуратнее с делением чисел
Solidity, на данный момент сентября 2022 года, не поддерживает числа с точкой, и при делении 5/2 будет показан результат "2". Т.е. вместе с откидыванием цифр после точки, он еще и округляет результат до меньшего числа.
Это действительно проблема для большинства разработчиков. И многие пытаются преодолеть ее через дополнительные библиотеки на openzeppelin или пишут свои "костыли".
В документации по Solidity пишут, что нужно использовать мультипликатор, как в примере:
uint multiplier = 10;
uint x = (5 * multiplier) / 2;
Из других статей я понял, что можно также выполнять все математические операции на фронтенде, чтобы все было точнее, а уже результат сохранять в Solidity.
Некоторые предлагают использовать decimals эфира, но я не видел хороших примеров.
#division #integer #hint
Solidity, на данный момент сентября 2022 года, не поддерживает числа с точкой, и при делении 5/2 будет показан результат "2". Т.е. вместе с откидыванием цифр после точки, он еще и округляет результат до меньшего числа.
Это действительно проблема для большинства разработчиков. И многие пытаются преодолеть ее через дополнительные библиотеки на openzeppelin или пишут свои "костыли".
В документации по Solidity пишут, что нужно использовать мультипликатор, как в примере:
uint multiplier = 10;
uint x = (5 * multiplier) / 2;
Из других статей я понял, что можно также выполнять все математические операции на фронтенде, чтобы все было точнее, а уже результат сохранять в Solidity.
Некоторые предлагают использовать decimals эфира, но я не видел хороших примеров.
#division #integer #hint
👍1