The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Инициатива по созданию порта PostgreSQL на языке Rust, opennews (?), 09-Янв-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


87. "Инициатива по созданию порта PostgreSQL на языке Rust"  –2 +/
Сообщение от Аноним (-), 09-Янв-17, 15:55 
Я тоже думаю жс быть не должно , вспомнити npm leftpad и Nan =! Nan, а еще вспомнити 0.1 + 0.2 = 0.300000000000000004 , а еще вспомнити атом а еще вспомнити как он тормазит
Ответить | Правка | Наверх | Cообщить модератору

99. "Инициатива по созданию порта PostgreSQL на языке Rust"  +/
Сообщение от Аноним (-), 09-Янв-17, 17:25 
опять ты тут вылез со своим 0.1 + 0.2? я же тебя уже ткнул носом, что ты не прав. иди обратно в школу
Ответить | Правка | Наверх | Cообщить модератору

121. "Инициатива по созданию порта PostgreSQL на языке Rust"  +/
Сообщение от www2 (ok), 09-Янв-17, 18:36 
> Nan =! Nan, а еще вспомнити 0.1 + 0.2 = 0.300000000000000004

Это особенность арифметики с плавающей запятой, эта арифметика во всех языках одинаковая, т.к. в конечном счёте реализуется за счёт аппаратных возможностей процессора.


Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

132. "Инициатива по созданию порта PostgreSQL на языке Rust"  +/
Сообщение от Аноним (-), 09-Янв-17, 19:13 
клоун: ты бы хоть объяснил человеку в чём именно он не прав.

NaN (Not a Number, "не число") - это результат операции, приведшей к переполнению или невозможности выполнения. Прибавим к максимальному значению 1, получим NaN. Затем вычтем из минимального возможного значения 1, получим NaN. Отсюда понятно что NaN не равен другому NaN.

Компьютер хранит не абсолютные значения, а степени двойки. Поэтому 0.1 в его представлении это не 1/10, а аппроксимация запаянной в него экспоненциальной функции. И, как любая аппроксимация, она редко бывает в точности равна искомому значению.

Ответить | Правка | Наверх | Cообщить модератору

146. "Инициатива по созданию порта PostgreSQL на языке Rust"  +2 +/
Сообщение от Аноним84701 (ok), 09-Янв-17, 20:16 
> Компьютер хранит не абсолютные значения, а степени двойки. Поэтому 0.1 в его представлении это не 1/10

Как будто кто-то мешает хранить "как надо":


?- {X =:= 1/10 + 2/10, Y =:= 15/100 + 15/100, X=Y, Z =:= 2/3 + 1/3}, format('~g\n~g\n~g', [X,Y,Z]).
0.3
0.3
1

или

>>> 0.1 + 0.2 == 0.15 + 0.15, 0.1 + 0.2

(False, 0.30000000000000004)
>>> from fractions import Fraction as frac
>>> x,y,z = frac('1/10'), frac('2/10'), frac('15/100') + frac('15/100')
>>> x+y == z, map(float, [x,y,z])

(True, [0.1, 0.2, 0.3])

Ответить | Правка | Наверх | Cообщить модератору

297. "Инициатива по созданию порта PostgreSQL на языке Rust"  +/
Сообщение от www2 (ok), 31-Янв-17, 19:00 
> клоун: ты бы хоть объяснил человеку в чём именно он не прав.

Это ты клоун, я не про NaN говорил, а про 0.1 + 0.2 = 0.300000000000000004. Это в любом языке так.

Ответить | Правка | К родителю #132 | Наверх | Cообщить модератору

169. "Инициатива по созданию порта PostgreSQL на языке Rust"  –2 +/
Сообщение от Вареник (?), 09-Янв-17, 21:10 
>> Nan =! Nan, а еще вспомнити 0.1 + 0.2 = 0.300000000000000004
> Это особенность арифметики с плавающей запятой, эта арифметика во всех языках одинаковая,
> т.к. в конечном счёте реализуется за счёт аппаратных возможностей процессора.

- Вот для этого в нормальных языках есть строгая типизация.

Ответить | Правка | К родителю #121 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру