Kotlin Длинные поплавковые разницы

Я пытаюсь преобразовать значение Long для Float в Kotlin. Однако я вижу, что он меняет значение на небольшую долю. Вот простой тестовый прогон:

import java.text.DecimalFormat fun main(args: Array<String>) { val l = 1513741500 val f:Float = l.toFloat() val df = DecimalFormat("0") println(df.format(f)) } Output: 1513741440 

Как видно, существует небольшая разница между значениями. Как я могу гарантировать, что одно и то же значение возвращается при преобразовании?

 l: Int = 1513741500 f: Float = 1.51374144E9 d: Double = 1.5137415E9 

Поэтому, если вы планируете использовать большие числа, скорее используйте Double than Float.

  • Как я могу получить ссылку на объект Kotlin по имени?
  • Почему я не вижу ничего полезного в logcat при вызове метода из Kotlin?
  • Невозможно использовать string.contains () в выражении kotlin `when`
  • Kotlin Ошибки Runtime для базовых операторов
  • Захват и сохранение изображения с помощью Kotlin в Android Studio
  • Как добавить приложение create-react-kotlin-app в качестве модуля для проекта kotlin-multiplatform?
  • Обращение к инфиксному логическому результату kotlin
  • Доступ к Integer.class из Котлина
  • Могу ли я передать информацию о типе, чтобы упростить это?
  • Kotlin: как вернуть исполняемый экземпляр службы в связующее?
  • Ошибка установки Kotlin / Native: файл jni.h не найден
  • Давайте будем гением компьютера.