Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2017, 01:59   #1
sasvak
 
Регистрация: 21.02.2017
Сообщений: 3
По умолчанию Сложение двух чисел в джаве - Java SE

Здравствуйте.

Я хочу понять: как Java складывает 2 double значения (на машинном уровне или уровне двоич.) и почему она не дает правильный ответ?

Те, что происходит на глубоком уровне (шаг за шагом)?

Пример:

Код:
public class GalToLitTable {
  
    public static void main(String[] args) {
  
        System.out.println(3.7854 + 3.7854);
        System.out.println(7.5708 + 3.7854);
  
    }
  
}
After run:

7.5708
11.356200000000001

НО должно быть:

7.5708
11.3562


Я хочу понять (шаг за шагом):

1. Как Java преобраз. эти значения в двоич?

2. Какое представление этого двоичн ( 80 или 64 бит длины)?

3. Как Java округл. этот двоич. (7.5708 and 3.7854 not exact convert to binary, how java rounding this binary (last bit) or java cuts this binary after 64 bit without rounding)?

4. Как Java суммир. два бинарных значения?

5. Как Java округл. эту двоич. сумму?

6. Как Java преобразов. двоич. сумму в десятичную сумму?

Вот как я сам ответил на первые 3 вопроса:

7.5708 = 0 10000000001 11100100100001111111110010111001001 00011101000101010 (Inexact, 1+11+52 bit = 64 bit)

3.7854 = 0 10000000000 11100100100001111111110010111001001 00011101000101010 (Inexact, 1+11+52 bit = 64 bit)

Java has Round-Half-Even (Banker's Rounding), when convert decimal to binary.

Я прав?
sasvak вне форума Ответить с цитированием
Старый 21.02.2017, 07:26   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Почитай это. Вообще, всё это связано с тем, что десятичные дроби в двоичном виде невозможно записать точно.
https://habrahabr.ru/post/219595/
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение двух десятичных положительных чисел. целых чисел))) PEro_man Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 01.12.2010 12:40
сложение двух пятибайтовых чисел s2dentishe Помощь студентам 0 12.06.2010 08:32
Сложение двух бинарных чисел на С++ innaa639 Помощь студентам 0 19.04.2010 14:05
Сложение двух 64-х разрядных чисел в Ассемблере Fataller Помощь студентам 1 14.10.2009 22:16
сложение двух чисел pif Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 18 15.02.2009 12:51