Как преобразовать число с плавующей точкой double к типу long без потери значений после запятой?

Рейтинг: -2Ответов: 2Опубликовано: 30.07.2023

Мне нужно преобразовать число типа double 32,332273 в тип long, но чтобы все числа остались. Я пробывал использовать математическую библиотеку но ничего не вышло, пробовал автоматическое преобразование ситуация аналогична. Подскажите как правильно это можно сделать

Ответы

▲ 1

Никак, тип данных Long не хранит ничего после запятой. При конвертации, значения после запятой будут утрачены. Поэтому если хотите сохранить данные после запятой, воспользуйтесь другим типом данных, который бы это поддерживал

▲ 0

Как вариант, можно преобразовать следующим образом:

double d = 32.332273;
long l = Long.parseLong(String.valueOf(d).replaceAll("\\.", ""));
System.out.println(l); // На выходе: 32332273