Старый 21.09.2006, 17:22   #1   
в тенёчке
 
Аватар для Katrin_II
 
Сообщений: 8,037
Регистрация: 14.08.2002
Возраст: 44

Katrin_II вне форума Не в сети
Округлить float (java servlet pages)

Есть формула:

float c=a+b;

float d=Float.parseFloat(oRS.get(String("10"))*c;

В как можно округлить d, чтобы после запятой осталось 2 цифры?

Нужно именно в формуле, а не в запросе. В таком контексте:

float d=round((Float.parseFloat(oRS.getString("10"))*c), 2);

Не получается нифига... Даже так не выходит:
float d=floor(Float.parseFloat(oRS.get(String("10"))*c);

Возвращает ошибку с сообщением:
symbol : method floor (float)

Помогите, плиииз!
  Ответить с цитированием
Старый 22.09.2006, 08:29   #2   
в тенёчке
 
Аватар для Katrin_II
 
Сообщений: 8,037
Регистрация: 14.08.2002
Возраст: 44

Katrin_II вне форума Не в сети
ну памагите! хнык...
  Ответить с цитированием
Старый 22.09.2006, 08:35   #3   
бабай
 
Аватар для builder
 
Сообщений: 7,004
Регистрация: 29.07.2004
Возраст: 45

builder вне форума Не в сети
Katrin_II, в ентом зловещем языке ничего не понимаю. Но когда нужно было сделать подобное на программируемом калькуляторе я поступал так: умножал на 100, от полученного значения брал int и обратно делил на 100.
Ес-сно все это применялось числам больше единицы )))
  Ответить с цитированием
Старый 22.09.2006, 08:41   #4   
в тенёчке
 
Аватар для Katrin_II
 
Сообщений: 8,037
Регистрация: 14.08.2002
Возраст: 44

Katrin_II вне форума Не в сети
builder, хм... вариант... счас попробую.
  Ответить с цитированием
Старый 22.09.2006, 08:57   #5   
Форумец
 
Аватар для Zhenka
 
Сообщений: 578
Регистрация: 16.11.2004

Zhenka вне форума Не в сети
Katrin_II, я ещё могу добавить, что можно после умножения на сто и взятия int, проверить остаток на больше-меньше 0.5. Если меньше, то так и берем инт и делим опять на сто, если больше или равно, то прибавляем к инту единичку и потом делим на сто. Короче, правила округления учитываем таким образом.
  Ответить с цитированием
Старый 22.09.2006, 09:13   #6   
в тенёчке
 
Аватар для Katrin_II
 
Сообщений: 8,037
Регистрация: 14.08.2002
Возраст: 44

Katrin_II вне форума Не в сети
блин... float в integer не получается перевести...
пишу:
int d=Integer.parseInt(Float.parseFloat(oRS.get(String ("10"))*c);
А оно мне опять ошибку - symbol : method int (float)
  Ответить с цитированием
Старый 22.09.2006, 09:31   #7   
в тенёчке
 
Аватар для Katrin_II
 
Сообщений: 8,037
Регистрация: 14.08.2002
Возраст: 44

Katrin_II вне форума Не в сети
Получилось округлённое до целого число чисто по случайности. Решила метод Math добавить через точку:
Math.round(Float.parseFloat(oRS.get(String ("10"))*c)

всё. проблема решена. Но всем спасибо.
  Ответить с цитированием
Старый 22.09.2006, 10:34   #8   
Registered User
 
Аватар для netwind
 
Сообщений: 1,905
Регистрация: 25.03.2003

netwind вне форума Не в сети
угу, язык зловещий и sprintf там нету.
так что наиболее кошерно будет как-то так :

import java.text.*;

float fi = 1234.56789F;
DecimalFormat mydf = new DecimalFormat( "0000000.00" );
System.out.println( mydf.format(fi) );
  Ответить с цитированием
Старый 02.10.2006, 18:59   #9   
Форумец
 
Аватар для VYX
 
Сообщений: 1
Регистрация: 02.10.2006
Возраст: 56

VYX вне форума Не в сети
Цитата:
Сообщение от netwind
угу, язык зловещий и sprintf там нету.
так что наиболее кошерно будет как-то так :
import java.text.*;
float fi = 1234.56789F;
DecimalFormat mydf = new DecimalFormat( "0000000.00" );
System.out.println( mydf.format(fi) );
sprintf там есть, начиная с версии 5 (1.5):
String.format(Locale, String, ...)
String.format(String, ...)
так же есть и printf
System.out.printf("%.2f", 123.43556F);
форматы такие же как в C/C++, плюс некоторые приятные расширения.
Скажем для чисел можно указать использовать разделитель тысяч.
По-умолчанию (т.е. если локаль не указывать) будет использоваться
текущая.
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind