+ Ответить в теме
Показано с 1 по 3 из 3

Тема: Floating point in Java

  1. #1
    sasvak is on a distinguished road
    Регистрация
    22.02.2017
    Возраст
    37
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Floating point in Java

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

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

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

    Пример:

    Код :
    1. public class GalToLitTable {
    2.  
    3.     public static void main(String[] args) {
    4.  
    5.         System.out.println(3.7854 + 3.7854);
    6.         System.out.println(7.5708 + 3.7854);
    7.  
    8.     }
    9.  
    10. }

    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 11100100100001111111110010111001001000111010001010 10 (Inexact, 1+11+52 bit = 64 bit)

    3.7854 = 0 10000000000 11100100100001111111110010111001001000111010001010 10 (Inexact, 1+11+52 bit = 64 bit)

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

    Я прав?

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Administrator Админ
    system architect
    AiK is on a distinguished road Аватар для AiK
    Регистрация
    13.02.2004
    Адрес
    СПб
    Сообщений
    2,290
    Вес репутации
    80

    По умолчанию Re: Floating point in Java

    Полагаю, нужно смотреть в сторону как Java преобразовывает float (double) в массив символов.
    А вот глубокие уровни, боюсь, на разных устройствах могут быть разными.
    Даже самый дурацкий замысел можно воплотить мастерски

  4. #3
    dummy
    coder
    Андрей Белецкий is on a distinguished road
    Регистрация
    27.09.2017
    Возраст
    29
    Сообщений
    10
    Вес репутации
    0

    По умолчанию Re: Floating point in Java

    все по разному

+ Ответить в теме

Похожие темы

  1. Решение уравнения методом простых итераций, Floating poin:Squere root of Negative num
    надо решить уравнение методом простых итераций f(x)=arcsin(2x+1)-x^2=0 , ошибок при компиляции нету , но при запуске выдаёт Floating poin:Squere...
    от Dozen в разделе C и C++
  2. invalid floating point operation
    В процессе компиляции ИНОГДА выскакивает эта ошибка. Не всегда: с одними и теми же данными, ничего не меняя, могу один раз нажать на Батон,-программа...
    от fiascko в разделе Программирование на Pascal и Delphi (Object Pascal)
  3. long double и floating point error
    доброго времени суток, господа. прощу помочь вот в каком вопросе: реализую Метод Наименьших Квадратов на си. это работа с матрицами, элементами...
    от ilyagoo в разделе C и C++
  4. Гиперссылки в Power Point
    Добрый день! У меня возникла следующая проблема. В файле Power point есть гиперссылка на определенное место в экселевском файле. Все работает....
    от Дмитрий Д в разделе MS Office и VB(A).
  5. Power Point
    Помогите зациклить первые 5 слайдов в презентации power point, а по щелчку мыши перейти на 6-й и так далее. Спасибо
    от JIMJIM в разделе MS Office и VB(A).

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения