Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > frexp() и Java


Автор: igorka 19.7.2007, 09:39
Подскажите, плз, есть ли аналог функции frexp() в Java?
frexp - функция, которая получает дабл, и возвращает мантису и экспоненту.
Как ее реализовать? Или заменить?

Автор: nornad 19.7.2007, 17:16
Math.getExponent(double)
А манитиссу можно получить вычтя из исходного дабла его целую часть.

Автор: AntonSaburov 19.7.2007, 17:29
Только эта вещь появилась лишь в 1.6

Автор: hamsterKSU 19.7.2007, 17:53
а если перегнать число в строку и распарсить руками,  конечно если оно не в экспотенциальной форме записано

Добавлено @ 18:01
Код

static int[] frexp(double d){
        String sD = String.valueOf(d);
        String separator = ".";
        int sepIndex = sD.indexOf(separator);
        return new int[]{Integer.parseInt(sD.substring(0, sepIndex)),Integer.parseInt(sD.substring(++sepIndex))};
    }


Добавлено через 10 минут и 37 секунд
ну или 
Код

static int[] frexp(double d){
        StringTokenizer tok = new StringTokenizer(String.valueOf(d),".");
        return new int[]{Integer.parseInt(tok.nextToken()),Integer.parseInt(tok.nextToken())};
    }

Автор: LSD 20.7.2007, 13:45
Только не забывайте, что это все двоичные экспоненты, а не десятичные.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)