Resposta do Desafio - Float Solidity

// Some code```remix-solidity
// SPDX-License-Identifier: GPL-3.0
// Declaração da versão do Solidity a ser usada
pragma solidity ^0.8.0;

// Declaração do contrato
contract Percentual {
    uint256 private paymentAmount;

    string private name;
   
    /*
   immutable      
   Variáveis imutáveis são como constantes. 
   Valores de variáveis imutáveis podem ser definidos dentro do construtor, 
   mas não podem ser modificados posteriormente.
   */
    uint8 public immutable decimals;
    
    /*
    Constantes são variáveis que não podem ser modificadas. 
    O uso constante pode economizar custos de gás.
    */
    uint8 public constant PRECISION = 10;

/* Sub-unidade
10−3  - Finney
10−6  - Szabo
10−9  - Shannon
10−12 - Babbage
10−18 - Lovelace 
*/

    /*
    FUNÇÕES: 
    function nome_function(type1 var1, ...) 
     [public,external,private,internal]  
    [payable|pure|view] [returns (type var, type var ....)] 
     { ... }
    */
    /*
        WEI precision  18 decimals 
        TESTES: 
2        //2500000000000000000
        1 ) _paymentAmount = 20500000000000000000 WEI = 20.5     * 4% = 0.82       = 820000000000000000 WEI 
        2 ) _paymentAmount = 50000000000000000    WEI = 0.05     * 4% = 0.002      = 2000000000000000 WEI 
        3 ) _paymentAmount = 84789000000000000    WEI = 0.084789 * 4% = 0.00339152 = 3391520000000000 WEI 
                                                        0.084789                  -> 3391560000000000
        https://www.alchemy.com/gwei-calculator

    */
    function calculatePercentage(uint256 _paymentAmount)
        public
        pure
        returns (uint256)
    {
        uint256 percentageReturn = (_paymentAmount * 4) / 100;
        return percentageReturn;
    }

    /*
            PESQUISAR SOBRE OVERFLOW SOLIDITY
        */
    function calculateOverflow(uint8 _paymentAmount)
        public
        pure
        returns (uint256)
    {
        uint256 result = _paymentAmount * 5;
        //paymentAmount = result;
        return result;
    }

    function setName(string memory n) public {
        name = n;
    }
}

```

Last updated