Size: a a a

2019 October 15

AO

Alexey Otts in Kotlin JVM
инфинит возможно
источник

AN

Alexander Nozik in Kotlin JVM
Ivan Medvedev
Привет. Я как не искушенный джавой поймал "NaN".toDoubleOrNull(). Починил через "NaN".toDoubleOrNull()?.takeIf { !it.isNaN() }. Подскажите, есть ли еще похожие приколы, когда я ожидаю чисел а получу нечто другое?
"NaN" это строка? Если да, то что еще вы ожидали?
источник

IM

Ivan Medvedev in Kotlin JVM
да, строка
источник

VP

Vladimir Petrakovich in Kotlin JVM
Ivan Medvedev
Привет. Я как не искушенный джавой поймал "NaN".toDoubleOrNull(). Починил через "NaN".toDoubleOrNull()?.takeIf { !it.isNaN() }. Подскажите, есть ли еще похожие приколы, когда я ожидаю чисел а получу нечто другое?
Приколы с плавающей точкой в общем-то не зависят от языка
источник

AN

Alexander Nozik in Kotlin JVM
а, все, не внимательно почитал. NaN не парсится в число.
источник

QH

Quantum Harmonizer in Kotlin JVM
NaN и есть число :)
источник

AL

Anton Lakotka in Kotlin JVM
Я не совсем понял. NaN и есть Double
источник

AL

Anton Lakotka in Kotlin JVM
причем тут "число" если кастится в дабл
источник

AN

Alexander Nozik in Kotlin JVM
Это строка, вопрос парсинга
источник

AN

Alexander Nozik in Kotlin JVM
конкретно Double.parseDouble
источник

AO

Alexey Otts in Kotlin JVM
Alexander Nozik
конкретно Double.parseDouble
парсится же
источник

AN

Alexander Nozik in Kotlin JVM
Alexey Otts
парсится же
Ща проверим
источник

QH

Quantum Harmonizer in Kotlin JVM
так а чего б ему не парситься, если это нормальный floating point?
источник

IM

Ivan Medvedev in Kotlin JVM
моя задача изначально - получить число из строки, если там не цифры - нужен null. Я понимаю это матчасть, буду гуглить дальше, просто боюсь очередное решение опять будет с неожиданным для меня поведением.
источник

AN

Alexander Nozik in Kotlin JVM
Quantum Harmonizer
так а чего б ему не парситься, если это нормальный floating point?
При чем тут floating point. Я про строку NaN
источник

QH

Quantum Harmonizer in Kotlin JVM
Ivan Medvedev
моя задача изначально - получить число из строки, если там не цифры - нужен null. Я понимаю это матчасть, буду гуглить дальше, просто боюсь очередное решение опять будет с неожиданным для меня поведением.
эта матчасть называется IEEE 754, описывается как-то так, как на картинке, плюс NaN и ±Infinity https://www.json.org/img/number.png
источник

AO

Alexey Otts in Kotlin JVM
Alexander Nozik
При чем тут floating point. Я про строку NaN
Ну это число с плавающей запятой
источник

QH

Quantum Harmonizer in Kotlin JVM
Alexander Nozik
При чем тут floating point. Я про строку NaN
NaN — это нормальное такое число
источник

AN

Alexander Nozik in Kotlin JVM
Действительно парсится. Но я бы не сказал, что это так уж очивидно.
источник

QH

Quantum Harmonizer in Kotlin JVM
* нормальное с точки зрения IEEE 754, а не здорового человека, конечно
источник