¿Cómo ingresar/formatear un valor como 0.2 en el navegador de remezclas como porcentaje?
p.ejfunction transfer(address _to, uint256 _value, uint256 percentage) public returns (bool);
(no importa la función es para fines demostrativos)
uint256
es un tipo de número entero, por lo que solo puede pasar números enteros. Solidity no tiene números de punto flotante o de punto fijo.
Una solución típica es utilizar un número racional, es decir, un numerador y un denominador, a menudo con un denominador fijo. Por ejemplo, al pasar un porcentaje, en vez de pasar 0,2, pasar 20 y dividir por 100:
amount * percentage / 100
Puedes hacer algo como esto:
pragma solidity ^0.4.20;
import "./SafeMath.sol";
contract Percentage{
uint public testvalue;
///apply a percentage as modifying factor to the token amount to transfer
constructor(uint256 _value, uint256 percentage) public {
// reduce the amount to transfer by 20 Percent
uint transferAmount = (_value * SafeMath.sub(100, percentage)) / 100;
//set testresult
testvalue = transferAmount;
}
}
AhorasyMe
usuario19510
AhorasyMe
usuario19510