Собственный тип данных с плавающей точкой
От: Аноним  
Дата: 22.12.09 17:21
Оценка:
Появилась острая необходимость создать свой тип данных по типу Double. Точности Float к сожалению не хватает, а использовать тип Double не представляется возможным. Для созданного типа понадобятся операции сложения и умножения. Наверняка кто-нибудь что-то подобное делал. Можете поделиться советами или кодом?
Re: Собственный тип данных с плавающей точкой
От: Vamp Россия  
Дата: 22.12.09 17:25
Оценка:
А>Появилась острая необходимость создать свой тип данных по типу Double...
Подумай хорошенько, правда ли она появилась? Уж не собираешься ли ты хранить там денежные значения?
Да здравствует мыло душистое и веревка пушистая.
Re[2]: Собственный тип данных с плавающей точкой
От: toffeeA  
Дата: 22.12.09 17:32
Оценка:
Здравствуйте, Vamp, Вы писали:

А>>Появилась острая необходимость создать свой тип данных по типу Double...

V>Подумай хорошенько, правда ли она появилась? Уж не собираешься ли ты хранить там денежные значения?

Точно, точно! Речь идет о серьезной математике, которая заложена в процессор.
Re: Собственный тип данных с плавающей точкой
От: Caracrist https://1pwd.org/
Дата: 22.12.09 17:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Появилась острая необходимость создать свой тип данных по типу Double. Точности Float к сожалению не хватает, а использовать тип Double не представляется возможным. Для созданного типа понадобятся операции сложения и умножения. Наверняка кто-нибудь что-то подобное делал. Можете поделиться советами или кодом?

какие требования к этому типу? (отличные от double)
система счисления, место в памяти, скорость операторов...
~~~~~
~lol~~
~~~ Single Password Solution
Re[3]: Собственный тип данных с плавающей точкой
От: Caracrist https://1pwd.org/
Дата: 22.12.09 17:39
Оценка:
Здравствуйте, toffeeA, Вы писали:

A> которая заложена в процессор.

c++?
~~~~~
~lol~~
~~~ Single Password Solution
Re[3]: Собственный тип данных с плавающей точкой
От: Vamp Россия  
Дата: 22.12.09 17:39
Оценка:
A>Точно, точно! Речь идет о серьезной математике, которая заложена в процессор.
Деньги в данных с плавающей точкой не хранят никогда.
Да здравствует мыло душистое и веревка пушистая.
Re[4]: Собственный тип данных с плавающей точкой
От: Caracrist https://1pwd.org/
Дата: 22.12.09 17:40
Оценка:
Здравствуйте, Vamp, Вы писали:

V>Деньги в данных с плавающей точкой не хранят никогда.

уплывут...
~~~~~
~lol~~
~~~ Single Password Solution
Re[2]: Собственный тип данных с плавающей точкой
От: toffeeA  
Дата: 22.12.09 17:45
Оценка:
Здравствуйте, Caracrist, Вы писали:

C>Здравствуйте, Аноним, Вы писали:


C>какие требования к этому типу? (отличные от double)

C>система счисления, место в памяти, скорость операторов...

Учитывая что в этот тип придется переходить из float, наверное двоичная удобней будет.
Место в памяти есть, таких значений не много будет, быстродействие не сильно важно, так как именно этот обсчет планируется выполнять раз в 30сек (60 сек)
Re[4]: Собственный тип данных с плавающей точкой
От: toffeeA  
Дата: 22.12.09 17:47
Оценка:
Здравствуйте, Caracrist, Вы писали:

C>Здравствуйте, toffeeA, Вы писали:



C>c++?


Си
Re[4]: Собственный тип данных с плавающей точкой
От: Sni4ok  
Дата: 22.12.09 17:53
Оценка:
Здравствуйте, Vamp, Вы писали:

A>>Точно, точно! Речь идет о серьезной математике, которая заложена в процессор.

V>Деньги в данных с плавающей точкой не хранят никогда.

конечноже хранят
Re[5]: Собственный тип данных с плавающей точкой
От: Vamp Россия  
Дата: 22.12.09 17:57
Оценка:
S>конечноже хранят
Только там, где плюс-минус доллар ничего не решает.
Да здравствует мыло душистое и веревка пушистая.
Re[3]: Собственный тип данных с плавающей точкой
От: Caracrist https://1pwd.org/
Дата: 22.12.09 18:08
Оценка:
Здравствуйте, toffeeA, Вы писали:

A>Здравствуйте, Caracrist, Вы писали:


C>>Здравствуйте, Аноним, Вы писали:


C>>какие требования к этому типу? (отличные от double)

C>>система счисления, место в памяти, скорость операторов...

A>Учитывая что в этот тип придется переходить из float, наверное двоичная удобней будет.

A>Место в памяти есть, таких значений не много будет, быстродействие не сильно важно, так как именно этот обсчет планируется выполнять раз в 30сек (60 сек)

я выделил жирным важную часть вопроса...
И того, вам нужен double.

от сюда два вопроса:
1. Почему "использовать тип Double не представляется возможным" ?
2. Какие базовые типы доступны для реализации аналога Double?
~~~~~
~lol~~
~~~ Single Password Solution
Re[4]: Собственный тип данных с плавающей точкой
От: toffeeA  
Дата: 22.12.09 18:17
Оценка:
Здравствуйте, Caracrist, Вы писали:


C>я выделил жирным важную часть вопроса...

C>И того, вам нужен double.

C>от сюда два вопроса:

C>1. Почему "использовать тип Double не представляется возможным" ?
C>2. Какие базовые типы доступны для реализации аналога Double?

1. Потому что процессор не поддерживает такой тип данных. Написать Double в коде можно, но он его к 32-битному представлению приведет.
2. Из базовых типов — все целочисленные от char(unsigned char) до unsigned integer, и float.
Re[5]: Собственный тип данных с плавающей точкой
От: Caracrist https://1pwd.org/
Дата: 22.12.09 18:54
Оценка:
Здравствуйте, toffeeA, Вы писали:

A>Здравствуйте, Caracrist, Вы писали:



C>>я выделил жирным важную часть вопроса...

C>>И того, вам нужен double.

C>>от сюда два вопроса:

C>>1. Почему "использовать тип Double не представляется возможным" ?
C>>2. Какие базовые типы доступны для реализации аналога Double?

A>1. Потому что процессор не поддерживает такой тип данных. Написать Double в коде можно, но он его к 32-битному представлению приведет.

A>2. Из базовых типов — все целочисленные от char(unsigned char) до unsigned integer, и float.

О! Уже приближаемся к истине!
Сложение, вычитание и умножение побитово не сложно организовать...
Вопрос: какие операции этот тип должен поддерживать?
(деление, корень, синусообразные... )
~~~~~
~lol~~
~~~ Single Password Solution
Re[5]: Собственный тип данных с плавающей точкой
От: Caracrist https://1pwd.org/
Дата: 22.12.09 19:02
Оценка:
Здравствуйте, toffeeA, Вы писали:

A>Здравствуйте, Caracrist, Вы писали:



C>>я выделил жирным важную часть вопроса...

C>>И того, вам нужен double.

C>>от сюда два вопроса:

C>>1. Почему "использовать тип Double не представляется возможным" ?
C>>2. Какие базовые типы доступны для реализации аналога Double?

A>1. Потому что процессор не поддерживает такой тип данных. Написать Double в коде можно, но он его к 32-битному представлению приведет.

A>2. Из базовых типов — все целочисленные от char(unsigned char) до unsigned integer, и float.

мысль:
Смотреь в сторону реализаций Decimal. Их благо хватает, а логика должна быть аналогичной.
~~~~~
~lol~~
~~~ Single Password Solution
Re[3]: Собственный тип данных с плавающей точкой
От: Erop Россия  
Дата: 22.12.09 23:47
Оценка:
Здравствуйте, toffeeA, Вы писали:
A>Место в памяти есть, таких значений не много будет, быстродействие не сильно важно, так как именно этот обсчет планируется выполнять раз в 30сек (60 сек)

А чем, тогда, не устраивает double?
Вообще, о какой платформе речь?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Собственный тип данных с плавающей точкой
От: Erop Россия  
Дата: 22.12.09 23:49
Оценка:
Здравствуйте, toffeeA, Вы писали:

A>2. Из базовых типов — все целочисленные от char(unsigned char) до unsigned integer, и float.


Можно rational организовать, как отношение двух int, например...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Собственный тип данных с плавающей точкой
От: toffeeA  
Дата: 23.12.09 07:58
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, toffeeA, Вы писали:

A>>Место в памяти есть, таких значений не много будет, быстродействие не сильно важно, так как именно этот обсчет планируется выполнять раз в 30сек (60 сек)

E>А чем, тогда, не устраивает double?

E>Вообще, о какой платформе речь?

Речь идет о процессоре SHARC. А вы когда-нибудь сталкивались с реализацией типа в виде простой дроби или это просто мысль? У меня тоже она возникла, но какой-то маленький диапазон получается. Минимально в виде такой дроби можно записать 1/(2^32), что соответствует порядку 1E-10. А максимально (2^32)/1. Можно конечно парочку интов взять, но по-моему мне только лишь усложнит реализацию?
Re[6]: Собственный тип данных с плавающей точкой
От: toffeeA  
Дата: 23.12.09 08:17
Оценка:
Здравствуйте, Caracrist, Вы писали:


C>О! Уже приближаемся к истине!

C>Сложение, вычитание и умножение побитово не сложно организовать...
C>Вопрос: какие операции этот тип должен поддерживать?
C>(деление, корень, синусообразные... )

Из операций только сложение, вычитание и умножение. Допустим организую я свой тип по типу double с 11-битной экспонентой и 52-битной мантиссой. Побитно достучаться к нему смогу и сконвертировать из float в этот формат и обратно. Но как организовать арифметические операции "побитово" без потери точности введенного типа я в упор не понимаю. И что за тип такой Decimal, можно поподробней?
Re[5]: Собственный тип данных с плавающей точкой
От: alzt  
Дата: 23.12.09 08:17
Оценка:
Здравствуйте, toffeeA, Вы писали:

E>>А чем, тогда, не устраивает double?

E>>Вообще, о какой платформе речь?

A>Речь идет о процессоре SHARC. А вы когда-нибудь сталкивались с реализацией типа в виде простой дроби или это просто мысль?


О чём речь — о реализации в виде простой дроби или о типе данных с плавающей точкой?
Если нужно деньги считать, то плавающая точка тут не нужна. Достаточно обычного целого. При этом надо помнить, что считаем не в единицах, а в сотых долях единиц (или в десятитысячных), в зависимости от задачи. Если диапазон маленький — то слепить несколько целых в один класс.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.