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 

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

Solutions Collecting From Web of "Kotlin Длинные поплавковые разницы"

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

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