首页 > 解决方案 > Solidity 中的切片数字(例如从 uint 中提取 2 个第一个数字)

问题描述

我有这个数字:

uint256 numbers = 123456789;

我需要将前两个数字 (12) 提取到 uint 变量中。

也可以提取前一个数字之后的下两个数字:34

等等。

有没有简单的方法可以在solidity中做这样的事情?

我有这个功能,但它是为字符串制作的:

function getSlice(uint256 begin, uint256 end, string text) public pure returns (string) {
    bytes memory a = new bytes(end-begin+1);
    for(uint i=0;i<=end-begin;i++){
        a[i] = bytes(text)[i+begin-1];
    }
    return string(a);    
}

就我而言,我希望输入/输出数字为 UINT256。

在此先感谢您的帮助 !

标签: ethereumsoliditysmartcontractstruffleremix

解决方案


  function get2First() public view returns (uint) { 
    
    uint a = 123456789;
    uint b = a / 10000000;       
    return  b ;
}



function get2second() public view returns (uint) {
    
    uint a = 123456789;
    uint b = a / 100000;
    uint c = b % 100;
    return  c ;
}

推荐阅读