Двойное преобразование из String в Kotlin - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь получить ввод от пользователя в одну строку, а затем разбиваю его на соответствующую переменную. Например, мой ввод может быть «5 кг на грамм», поэтому программа примет ввод, разделит его разделителем «», а затем установит соответствующие переменные с их соответствующими индексами. Вот код :

val scanner = Scanner(System.`in`)
var inputArray: Array<String>
var input: String
var baseNumber: Double
var finalNumber: Double
var baseUnit: Unit
var finalUnit: Unit
while (true) {
    print("Enter a number and a measure of length: ")
    input = scanner.nextLine()
    if (input == "exit") return
    inputArray = input.split(" ").toTypedArray()
    println(input[0])
    baseNumber = input[0].toDouble()
    baseUnit = getUnit(inputArray[1])
    finalUnit = getUnit(inputArray[3])
...}

Однако переменная baseNumber , содержащая номер, похоже, не работает. Например, если я ввожу ввод, как указано выше (5 кг в граммы), переменная baseNumber каким-то образом становится 53,0.

Я новичок в Kotlin, поэтому я не уверен, почему это происходит. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 19 июня 2020

Вы читаете значение char. Значение ASCII символа 5 равно 53, поэтому вам нужно преобразовать String "5" в Double.

'5'.toDouble() // 53.0

"5".toDouble() // 5.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...