Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Округление double / 3 сообщений из 3, страница 1 из 1
23.05.2005, 07:25
    #33079219
Alexey Turn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление double
Происходит нечто интересное и мне не понятное.
Хочется округлить double до 2 знаков после точки:
roundDouble(18.1221) = 18.12

class Rounder{

public static final double roundDouble(double d) {
return Math.round (d * 100F ) / 100F ;
}
}

class RounderTest extends TestCase{

public void testRoundDouble(){

double d = 18.2123213213213;
System.out.println(Rounder.roundDouble(d));
System.out.println(Math.round (d * 100F ) / 100F );

}

public static void main (String[] str){

}

}


На консоли:

18.209999084472656
18.21


Ответте мне неграмотному- почему?
...
Рейтинг: 0 / 0
23.05.2005, 09:06
    #33079295
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление double
Alexey TurnПроисходит нечто интересное и мне не понятное.
Хочется округлить double до 2 знаков после точки:
roundDouble(18.1221) = 18.12


public static final double roundDouble(double d) {
return Math.round (d * 100F ) / 100F ;
}
}


System.out.println(Rounder.roundDouble(d));
System.out.println(Math.round (d * 100F ) / 100F );

}



imho
перед выходом из метода roundDouble результат Math.round переводится в double согласно сигнатуре метода, вот и получается 18.209999084472656.
а здесь: System.out.println(Math.round (d * 100F ) / 100F ) выводится сразу результат без переконвертации.
...
Рейтинг: 0 / 0
24.05.2005, 10:13
    #33081361
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление double
можно ещё проще:
Код: plaintext
1.
System.out.println((double) 18 .21f);
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Округление double / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]