Как я получаю целые и дробные части от дважды в JSP/Java?

Как я получаю целые и дробные части от дважды в JSP/Java? Если значение 3.25 затем, я хочу добраться fractional =.25, whole = 3

Как мы можем сделать это в Java?

92
задан Vadim Kotov 29 July 2019 в 14:40
поделиться

6 ответов

Google помог бы Вам, если бы Вы использовали правильные термины для поиска, "получают дробную и целую часть из двойного Java"

http://www.java2s.com/Code/Java/Data-Type/Obtainingtheintegerandfractionalparts.htm

double num;
long iPart;
double fPart;

// Get user input
num = 2.3d;
iPart = (long) num;
fPart = num - iPart;
System.out.println("Integer part = " + iPart);
System.out.println("Fractional part = " + fPart);

Выводы:

Integer part = 2
Fractional part = 0.2999999999999998
95
ответ дан Gishu 24 November 2019 в 06:23
поделиться

[Редактирование: вопрос первоначально спросил, как получить мантиссу и экспоненту.]

, Где n является числом для получения реальной мантиссы/экспоненты:

exponent = int(log(n))
mantissa = n / 10^exponent

Или, для получения ответа Вы искали:

exponent = int(n)
mantissa = n - exponent

Они не Java точно, но должны быть легки преобразовать.

3
ответ дан Stephen Darlington 24 November 2019 в 06:23
поделиться

Мантисса и экспонента IEEE, двойное число с плавающей точкой является значениями, таким образом, что

value = sign * (1 + mantissa) * pow(2, exponent)

, если мантисса имеет форму 0.101010101_base 2 (т.е. ее большая часть sigificant укусил, смещается, чтобы быть после двоичной точки) и экспонента корректируются для предвзятости.

С тех пор 1.6, java.lang. Математика также обеспечивает прямой метод получить несмещенную экспоненту (названный getExponent (дважды))

Однако числа, которые Вы просите, неотъемлемые и дробные части числа, которое может быть получено с помощью

integral = Math.floor(x)
fractional = x - Math.floor(x)

, хотя Вы можете Вы хотеть рассматривать отрицательные числа по-другому (floor(-3.5) == -4.0), завися, почему Вы хотите эти две части.

я настоятельно рекомендовал бы, чтобы Вы не называли их мантиссой и экспонентой.

4
ответ дан Stephan 24 November 2019 в 06:23
поделиться

Исходный вопрос задают для экспоненты и мантиссы, а не дробной и целой части.

Для получения экспоненты и мантиссы от двойного можно преобразовать его в представление IEEE 754 и извлечь биты как это:

long bits = Double.doubleToLongBits(3.25);

boolean isNegative = (bits & 0x8000000000000000L) != 0; 
long exponent      = (bits & 0x7ff0000000000000L) >> 52;
long mantissa      =  bits & 0x000fffffffffffffL;
7
ответ дан Rasmus Faber 24 November 2019 в 06:23
поделиться
double value = 3.25;
double fractionalPart = value % 1;
double integralPart = value - fractionalPart;
145
ответ дан Dan Vinton 24 November 2019 в 06:23
поделиться
public class MyMain2 {
    public static void main(String[] args) {
        double myDub;
        myDub=1234.5678;
        long myLong;
        myLong=(int)myDub;
        myDub=(myDub%1)*10000;
        int myInt=(int)myDub;
        System.out.println(myLong + "\n" + myInt);
    }
}
-2
ответ дан Michael Myers 24 November 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: