Как в Котлине уменьшить количество цифр после точки?

введите сюда описание изображенияВ результате вычислений получается число 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
→ Ссылка