【问题标题】:How to make aritmetic operations on Balance numbers to avoid overflow in NEAR smart contracts?如何对余额数进行算术运算以避免 NEAR 智能合约溢出?
【发布时间】:2021-01-12 12:21:59
【问题描述】:

我想使用 Rust 对 NEAR 智能合约中的 Balance (u128) 数字执行以下操作:

a*b / (a+b)

为了避免溢出,我需要将类型转换为支持更大数字的类型。正确的做法是什么?

我找到了一个construct_uint! 宏。这是正确的做法还是有更好的方法?

construct_uint! {
    /// 256-bit unsigned integer.
    pub struct u256(4);

}

...
let aB = u256::from(a);
let bB = u256::from(b);
return (aB*bB / (aB+bB)).as_u128();

【问题讨论】:

标签: rust nearprotocol


【解决方案1】:

【讨论】:

  • 谢谢。问题是关于溢出和 u256 构造。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
相关资源
最近更新 更多