209 похожих чатов

Как правильно округлить число до целочисленного в солидити?

8 ответов

18 просмотров

в солидити числа все целочисленные

А откуда у Вас нецелое число? Fixed point можно только константами задавать. Или уже обновление завезли?

M-Developer Автор вопроса
Dmitriy Gogolev
в солидити числа все целочисленные

а если я делю и получаю не целое?

deepcode.eth • Roman P
А откуда у Вас нецелое число? Fixed point можно то...

не будет такого обновления в ближайшее время

M-Developer Автор вопроса
Dmitriy Gogolev
4/3 = 1

он сам округляет?

/** * Calculate fee (UnSafeMath) -- use it only if it ^0.8.0 * @param amount number from whom we take fee * @param scale scale for rounding. 100 is 1/100 (percent). we can encreace scale if we want better division (like we need to take 0.5% instead of 5%, then scale = 1000) */ function calculateFee(uint256 amount, uint256 scale) internal view returns (uint256) { uint a = amount / scale; uint b = amount % scale; uint c = promille_fee / scale; uint d = promille_fee % scale; // Calculate fee with ROUND DOWN // return a * c * scale + a * d + b * c + b * d / scale; // calculate fee with ROUND UP // return a * c * scale + a * d + b * c + (b * d + scale - 1) / scale; // I guess we use this //calculate fee with CLOSESTS INTEGER // return a * c * scale + a * d + b * c + (b * d + scale / 2) / scale; return a * c * scale + a * d + b * c + (b * d + scale - 1) / scale; } чекни этот пример

Похожие вопросы

Карта сайта