Int не отображается в текстовом поле - PullRequest
0 голосов
/ 02 апреля 2019

Моя цель - заставить пользователя ввести количество золота, которое он должен конвертировать в наличные, умножив количество золота, которое он ввел, на 1000. Каждый слиток золота стоит 1000 наличных. Затем я хочу показать, что будет общее.

Кроме того, был бы другой способ использовать функцию обновления, чтобы постоянно обновлять это? Я чувствую, что это слишком интенсивно.

Я получаю эту ошибку:

FormatException: входная строка была в неправильном формате System.Int32.Parse (System.String s) (в /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Int32.cs:629) NSExchangeManager.ExchangeManager.Update () (в Assets / ExchangeManager.cs: 37)

Я пытался поменять местами конвертированные int.Parse(), но не повезло.

if(inputText.text != null)
{
    // Get input text
    string amountOfGold = inputText.text;
    // Set gold value
    int goldValue = 1000;
    // Multiply goldvalue by amount of gold
    int total = goldValue * int.Parse(amountOfGold);

    // Show the total in the 'money text'
    money.text = "$" + total.ToString();
    // Show amount of gold typed
    gold.text = amountOfGold;
}

Ответы [ 2 ]

3 голосов
/ 02 апреля 2019

Входная строка была не в правильном формате

Означает, что значение текстового поля (строки) не является допустимым числовым значением, которое может быть проанализировано как int. Вы должны использовать TryParse() вместо:

int gold = 0;
int.TryParse(amountOfGold,out gold);
int total = goldValue * gold;
0 голосов
/ 02 апреля 2019

Большое спасибо за помощь! Это то, что, наконец, сработало для меня.

if(inputText.text != null)
        {
            // Get input text
            string goldInput = inputText.text;
            int goldInputNum;
            int.TryParse(goldInput, out goldInputNum);

            // Set gold value
            int goldValue = 1000;

            int total = goldValue * goldInputNum;

            // Show the total in the 'money text'
            money.text = "$" + total.ToString();
            // Show amount of gold typed
            gold.text = goldInput;
        }
...