Как обнулить цифры идущие после запятой?

286
25 декабря 2018, 04:30

Предположим у нас результатом деления оказалось число типа 2.777777777...( и так до самого конца) сохраненное в double или float.
Можно ли каким то способом обнулить значение после .n.
Пример нам надо .3;
Результат 2.7770000000000000000000000000000000000000 ....
Без какова либо округления, просто как то обнулить биты или что то подобное?

Answer 1
double d = 2.777777777777777777777777777777777777777777;
double k = ((int) (d * 1000)) / 1000.0;
System.out.printf("%.100f", k);

Напечатает: 2.7770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Answer 2

Как-то так

((int)2.777777777*1000)/1000.

то есть вы берете флоут или дабл и двигаете запятую или точку вправо на нужное количество символов, а потом возвращаете обратно потеряв при этом дробную чаcть.

Можно как-то это разобрать, а то и в прямь 2 печатает

double d = 2.777777777*1000; //двигаем вправо
d = (int)d; //отбрасываем дробную часть
d = d/1000; //возвращаем значимую часть
System.out.println(d+"0000000000000000000000000000000000000 ....");
Answer 3
BigDecimal bigDecimal = new BigDecimal(2.777777777777777);
double value = bigDecimal.setScale(3, RoundingMode.DOWN).doubleValue();
System.out.println(value);
READ ALSO
Обновление файлов css/js

Обновление файлов css/js

Есть молодой сайт, на котором приходится постоянно обновлять файлыИспользуется фреймворк Flask

197
Grid, обтекание блоков

Grid, обтекание блоков

Построена сетка из двух колонок, но с разной высотой, к примеру товары в две колонкиПодскажите, как сделать с помощью свойства display: grid, чтобы...

151
Как получить определённые данные?

Как получить определённые данные?

я пропарсил данные с запроса, и получил их, как достать нужное значение всех?

177