Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Внутреннее представление формата Extended [D6]


Страницы:   1 2

wasabi ©   (2004-07-01 17:09:00) 

Кто-нибудь знает описание субж.?

Благодарю за внимание,
Василий


Тимохов   (2004-07-02 12:50:00) [1]

Удалено модератором


Sandman25   (2004-07-02 12:50:00) [2]

[26] Igorek ©   (02.07.04 12:47)

Вы свое мнение уже высказали :) вот тут [18] Igorek ©   (02.07.04 10:16)
"Прочитал статью. В своем мнении только утвердился"


Igorek   (2004-07-02 12:47:00) [3]

Удалено модератором


Anatoly Podgoretsky   (2004-07-02 10:33:00) [4]

Iconka ©   (02.07.04 10:24) [21]
Это щначит, что кто ни будь вышлет ему компоненты LMD, раз просит.


Sandman25   (2004-07-02 10:31:00) [5]

[23] Тимохов ©   (02.07.04 10:27)

Точнее, либо врун (если не читал), либо дурак (если читал).


Тимохов   (2004-07-02 10:27:00) [6]


> Iconka ©   (02.07.04 10:24) [21]

когда говороришь ерунду и еще упорствуешь в ереси - короме как ламер сказать что-нить сложно.


> Igorek ©   (01.07.04 20:39) [16]

А еще, коллега, вы врун, т.к. статью не читали.
:)))


Тимохов   (2004-07-02 10:24:00) [7]


> Igorek ©   (02.07.04 10:16) [18]

если вам нужен точный, тип, где можно сравнивать равенством, то пользуйтесь например типом TDecimal. Данный тип имеет всего 28 знаков и 10 (точных) знаков после запятой. Этот тип не описан в дельфи - в модуле activex описан только прототип - запись схожая с tvardata.

Операции также не работают в дельфи - их надо импортировать из библиотеки oleaut32.dll, например так
function VarDecAdd(var aDec1: TDecimal; var aDec2: TDecimal;
  out aDecResult: TDecimal): HResult;
  stdcall; external 'oleaut32.dll' name 'VarDecAdd';

Теоретически можете создать complex вариант - и туда его запихать, т.е. пользоваться +, - и т.д., а не функциями. Я уже 3 гда функциями пользуюсь - не грущу.

ЗЫ.
А про extended - чессо слово помолчали бы.


Iconka   (2004-07-02 10:24:00) [8]

Знаю. А в контексте "вам сейчас lmd пришьют"?


hexone   (2004-07-02 10:23:00) [9]


> Что такое LMD?

Компоненты такие


Iconka   (2004-07-02 10:19:00) [10]

Что такое LMD?


Igorek   (2004-07-02 10:16:00) [11]

Прочитал статью. В своем мнении только утвердился. Впрочем сомневаюсь, что здесь оно будет кому-то интересно. Здесь в моде "LMD", "в орешник" и другие недалекие выражения. Ламерством за версту тхнет.


Глеб   (2004-07-02 02:42:00) [12]


> эх, жать орешник не обновляется.


Igorek   (2004-07-01 20:39:00) [13]

[10-12, 15] - ignored

Представим тип SimpleReal для представления числа от 0 до 1. Машинное представление - два бита. Понятно, что два бита дадут возможность представить только 4 разных числа.
Пусть преобразование из десятичной дроби в двоичную происходит так:
[0-0.25) - 00
[0.25-0.5) - 01
[0.5-0.75) - 10
[0.75-1) - 11

Теперь пусть такой код:
var
 sr: SimpleReal;
begin
 sr := 0.3;

В памяти оно сохранит как 01.
Теперь прочитаем значение sr:
var
 r: Real;
begin
 r := sr;

r должно принять какое-то значение в диапазоне [0.25-0.5)
Пусть это будет 0.25 (допустим мы сами реализовали SimpleReal).
Имеем потерю точности вследствие:
1) невозможности представить некоторое десятичное число в двоичной форме без потери точности
2) округления при преобразовании назад в десятичное число

Вы наверно такую вещь имели ввиду, когда писали [10-15]?


Тимохов   (2004-07-01 19:21:00) [14]

эх, жать орешник не обновляется.


default   (2004-07-01 19:20:00) [15]

Igorek ©   (01.07.04 19:11) [9]
попробуйте перевести десят-ое число 0.7 в двоичное(
и придёте к бесконечной рациональной двоичной дроби


Anatoly Podgoretsky   (2004-07-01 19:17:00) [16]

Igorek ©   (01.07.04 19:11) [9]
Ты про неправильные дроби что ни буд слышал, это не программирование, а метематика.

1/3 * 3 никогда не будет равно 1
А вот
1   3
- * -
3   1
будет, а здесь тоже самое выражение, только дробь не десятичная.


Тимохов   (2004-07-01 19:13:00) [17]


> проблемы для юзера

если вы юзер - что вы тут делаете.
это форум программистов :)))


begin...end   (2004-07-01 19:13:00) [18]

Понеслось...


Тимохов   (2004-07-01 19:12:00) [19]


> Igorek ©   (01.07.04 19:11) [9]

помолчите
вам сейчас lmd пришьют
(правильно сделают, замечу)


Igorek   (2004-07-01 19:11:00) [20]


> Юрий Зотов ©   (01.07.04 18:09) [8]
> Не логичнее было бы поступить наоборот - СНАЧАЛА прочитать
> и понять, а уж ПОТОМ говорить о том, что должно и чего не
> должно быть?

У каждого своя логика. :-)))
Мне напр. и без статьи непонятно, почему проблемы перевода/представления из двоичной системы в десятеричную должны вылазить в такие проблемы для юзера. Взялись реализовывать десятичное число с плавающей точкой - будьте любезны релизовать так, что-бы не было ошибок округления в таких элементарных примерах.

Впрочем я могу ошибаться. И если Вас устроит, то в скором времени прочитаю и постараюсь понять статью. Потом выскажу свое мнение. Но сомневаюсь что оно изменится. $-)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо