首页 > 解决方案 > 有没有办法在 Solidity 中使用浮点数?我需要他们来写一份我正在写的小合同。如果浮动是不可能的,我可以用什么代替?

问题描述

我需要做一些基于浮点数的算术,但我在 Solidity 中找不到对这种基本功能的任何支持。有没有办法解决?

我试着到处寻找方法来做到这一点。真的很感激一些指示。也很抱歉我不能真正分享代码。非常感谢这方面的帮助

pragma solidity ^0.5.9;

contract test {
  //float result;
  uint8 a = 10;
  uint8 b = 4;


  function divide() public returns(float) { // I know this isn't possible 
    result = a / b;
  }
}

我得到一个编译错误。我寻找了很长时间来寻找如何做这样的事情。也许这里有人对此有所了解

标签: solidity

解决方案


在不了解您的用例的情况下,我很难提供更多帮助:

您可以简单地将每个值乘以 100,然后进行除法,并让值的使用者进行转换。伪代码如下:

contract test {
  //float result;
  uint8 a = 10;
  uint8 b = 4;


  function divide() public returns(integer) {
    result = (a * 100) / (b * 100);
  }
}

推荐阅读