Question: I am trying to convert **uint** to **string** in solidity. Is it possible to convert? if so how can I convert it?

Convertion to base 10 is prefered, but in hexadecimal might also be helpful.

Answer: 
Another option is to use a solution from Oraclize <https://github.com/oraclize/ethereum-api/blob/master/oraclizeAPI_0.5.sol>, it suits best for me:

**0.5 Compiler Version:**

```
    function uint2str(uint _i) internal pure returns (string memory _uintAsString) {
    if (_i == 0) {
        return "0";
    }
    uint j = _i;
    uint len;
    while (j != 0) {
        len++;
        j /= 10;
    }
    bytes memory bstr = new bytes(len);
    uint k = len - 1;
    while (_i != 0) {
        bstr[k--] = byte(uint8(48 + _i % 10));
        _i /= 10;
    }
    return string(bstr);
}

```

**Pre 0.5 Compiler Version:**

```
function uint2str(uint i) internal pure returns (string){
    if (i == 0) return "0";
    uint j = i;
    uint length;
    while (j != 0){
        length++;
        j /= 10;
    }
    bytes memory bstr = new bytes(length);
    uint k = length - 1;
    while (i != 0){
        bstr[k--] = byte(48 + i % 10);
        i /= 10;
    }
    return string(bstr);
}

```
[Solidity is character set agnostic concerning strings.](http://solidity.readthedocs.io/en/latest/frequently-asked-questions.html#what-character-set-does-solidity-use) There is no built-in "toString" in Solidity. <https://github.com/pipermerriam/ethereum-string-utils> is a library that can help:

```
> stringUtils.uintToBytes(1234)
"1234"

```

The MIT licensed implementation is:

```
function uintToBytes(uint v) constant returns (bytes32 ret) {
    if (v == 0) {
        ret = '0';
    }
    else {
        while (v > 0) {
            ret = bytes32(uint(ret) / (2 ** 8));
            ret |= bytes32(((v % 10) + 48) * 2 ** (8 * 31));
            v /= 10;
        }
    }
    return ret;
}

```