Как в Котлине уменьшить количество цифр после точки?
В результате вычислений получается число 29.985000000000003, но нужно, что бы было число 29.985
Как заставить функцию вернуть Dooble где было бы только 3 знака после точки? Округление не годится, нужно именно отрезать лишние цифры.
Ответы (3 шт):
Автор решения: zed
→ Ссылка
Используйте форматирование Java String format():
val x = 29.985000000000003
println( String.format("%.3f", x) ) // output: 29.985
Цифра поле точки указывает, сколько знаков после запятой будет напечатано. При этом, используется округление числа до заданной точности.
Автор решения: Wlad
→ Ссылка
используйте простую математику!)
var x = 29.98642
x = (x * 100).roundToInt() / 100.0 // делить надо обязательно на тип Double
// 29.99
метод roundToInt() не просто обрезает, но еще и округляет, согласно правилам.
Автор решения: imworse
→ Ссылка
без округления, просто отбрасывает ненужные знаки после запятой:
val value = 12.345678
val d1 = floor(value * 10.0) / 10.0 // 12.3
val d2 = floor(value * 100.0) / 100.0 // 12.34
val d3 = floor(value * 1000.0) / 1000.0 // 12.345
val d3 = floor(value * 10000.0) / 10000.0 // 12.3456