Формат функции sprintf()

Модератор: Absurd

Ответить
Василий
Сообщения: 4
Зарегистрирован: 20 сен 2004, 12:20

20 сен 2004, 12:28

Может в Java это делается по другому, но всё же. Мне нужно округлить дробную часть до 1 символа после запятой. Был такой запрос:

Код: Выделить всё

ress = stmt.executeQuery("SELECT AVG(answer_1), AVG(answer_2), AVG(answer_3), AVG(answer_4), AVG(answer_5), AVG(answer_6), AVG(answer_7), AVG(answer_8), AVG(answer_9), AVG(answer_10) FROM sqm_cours_users WHERE cours_n = " + nn + " AND yes_no = 1");
ress.next();
..............

Код: Выделить всё

<td align='center'><%=(ress.getString(1) != null)?ress.getString(1):"—"%></td>
.............
Получен ответ: 2.66666666666666666666666666666666666667E00
Меня устроит если он будет выглядеть - 2.6 или 2.7

Спасибо!
m_i_s_h_g_u_n
Сообщения: 14
Зарегистрирован: 26 авг 2004, 09:17
Откуда: Самара
Контактная информация:

20 сен 2004, 13:31

Вариант решения:

Код: Выделить всё

double input = 2.666666666666666666666
double output = Math.round( input * 10 ) / 10.0 ;
Результат: output = 2.7
Василий
Сообщения: 4
Зарегистрирован: 20 сен 2004, 12:20

21 сен 2004, 04:38

Спасибо! Оказывается копал не в том направлении. :?
bruth
Сообщения: 4
Зарегистрирован: 15 сен 2004, 10:44
Откуда: Москва

21 сен 2004, 09:32

[quote="m_i_s_h_g_u_n"]Вариант решения:

Код: Выделить всё

double input = 2.666666666666666666666
double output = Math.round&#40]

Результат: [b]output = 2.7[/b][/quote]

Вообще то лучше воспользоваться 
[code]
double output=Math.rint(input * 10)/10;
Будет чуточку быстрее и красивее - не будет ненужных конвертаций из double в int и наоборот
И ты Брут!
Ответить