Помогите Лишние нули в double

Novichock

Активный участник
Пользователь
Баллы
76
Считаю объём выделенной территории так:
Код:
                int width,length,height;
                width=(sel.getMaximumPoint().getBlockX()-sel.getMinimumPoint().getBlockX()+1);
                length=(sel.getMaximumPoint().getBlockZ()-sel.getMinimumPoint().getBlockZ()+1);
                height=(sel.getMaximumPoint().getBlockY()-sel.getMinimumPoint().getBlockY()+1);
                int amount = width*length*height;
//объём выделенной региона равен 343
Вывожу подобным образом(в "" свой текст)
Код:
p.sendMessage(amount*0.2+"") //выводит 68.60000000000001;
Могут быть ошибки из-за этих нулей(точнее из-за единички в конце)?
Можно ли как-то не выводить числа дальше 68.60 ?
 
В Google в первой же ссылке было решение ("java округлить double").
Java:
p.sendMessage(String.format(Locale.US, "%.2f", amount * 0.2));
 
В Google в первой же ссылке было решение ("java округлить double").
Java:
p.sendMessage(String.format(Locale.US, "%.2f", amount * 0.2));
А на вычисления эти нули будут влиять?Что будет если в Essentials'e сниму игроку деньги,используя это значение?
 
А на вычисления эти нули будут влиять?Что будет если в Essentials'e сниму игроку деньги,используя это значение?
Эти нули почти всегда есть, и пока никто от этого не умер. Если хотите высокую точность, то берите BigDecimal, но тут она вам не нужна.
 
(byte) берите а не (int).
 
Хм... а float забыли??? И вообще byte относится к типу "целые числа"!
 
Спасибо за поправки!

бесит derik, путаю с dereku...
 
Вместо умножения на вещественное число 0.2 вполне себе можно целочисленно поделить на 5; может всё-таки забить на ошибку в пределах 0.0-0.8?
И да, всё-таки лучше использовать long amount = l * w * h.
 
Вместо умножения на вещественное число 0.2 вполне себе можно целочисленно поделить на 5; может всё-таки забить на ошибку в пределах 0.0-0.8?
И да, всё-таки лучше использовать long amount = l * w * h.
Про long спасибо,но вместо 0.2 будет переменная,которую можно будет указать в конфиге.
 
Назад
Верх