Как мое преобразование из String в Double не работает?

У меня есть этот код:

fun main(args:Array<String>){ var value:String = "4.0*5.0" var value_double = value.toDouble() print(value_double) } 

У меня ошибка, но я не понимаю, почему я не получаю 20.0?

String.toDouble() не поддерживает умножение или другие арифметические операции. Фактически, он не поддерживает ничего, кроме парсинга парных.

Таким образом, единственный способ получить 20.0 – разбор чисел отдельно, а затем выполнение операций над ними.

 val value_double = "4.0".toDouble() * "5.0".toDouble() 

Решение от @voddan предпочтительнее, потому что оно статически запрограммировано. Но если вам по какой-то причине очень нужна оценка "4.0*5.0" и у вас нет реальной возможности сделать это статически (потому что это как-то передается вам как строка, а вы не знаете о содержании), чем вы могли бы используйте скриптовый движок. Подробнее см. Динамическая оценка шаблонных строк в Котлине

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

"4.0*5.0" не может быть преобразован в double, но "4.0" может так же "5.0" . Поэтому, если вы хотите получить результат 20.0 , вам придется преобразовать обе строки индивидуально, а затем умножить их

  val value_double = "4.0".toDouble() * "5.0".toDouble() print(value_double) 
Intereting Posts
Какой тип языка Котлин? Чистый ООП или функциональный Как создать несколько разделов текстовых просмотров с помощью нескольких касаний? Обновления / регенерации синтетического вида Android Studio Kotlin Как подключить HazelcastClient к HazelcastServer после перезагрузки сервера динамически созданный текст, как сделать findViewByTag в kotlin, он показывает неразрешенные ссылки Почему проверка ссылочного равенства возвращает true, когда ссылка различна java.lang.IllegalArgumentException: параметр, заданный как ненулевой, равен null: метод kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull Есть ли способ создать ненулевой массив из диапазона? Как использовать библиотеку kmongo для оператора slice Библиотека для обнаружения утечки памяти в android с помощью Kotlin Плагин Dokka не найден в студии Android 3 Проблема с типом номера телефона в Android Гуава конфликтует при использовании kotlin-script-util (для поддержки JSR-223) в приложении, использующем gRPC Kotlin неразрешимая ссылка во время компиляции Listview: плавный свиток вниз