Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Questions, --ll-- 
:(
    Опции темы
Mikel
Дата 22.4.2002, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



1) Нужна функция, возращающая кол-во значимых знаков после точки
Пример:
x=1.567345673 result=9
x=1432.45 result=2
x=243.2354 result=4

2) Как создать новый Series:TChartSeries для Chart1:TChart, со свойствами уже имеющегося Series'а.
3) При куче zoom'ов для Chart'а всплывает ошибка. Как от неё избавиться?


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Vit
Дата 22.4.2002, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Разделил бы ты вопросы...

1) Перевести в строку и найти позицию точки с конца...
2) А там свойства Assign случайно нет? Если нет - то только присвоением свойств...
3) Не знаю, скорее всего попробовать другой компонент.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Mikel
Дата 22.4.2002, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



В строку он переводит в стандартно виде- типа 1.123е+2 и долго.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Vit
Дата 22.4.2002, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Умножай в цикле на 10 и проверяй осталась ли дробная часть (Frac) большая нуля или нет.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Nloge
Дата 23.4.2002, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 25.3.2002

Репутация: нет
Всего: нет



Цитата

Нужна функция, возращающая кол-во значимых знаков после точки
Пример:
x=1.567345673 result=9
x=1432.45 result=2
x=243.2354 result=4

В общем случае никак ты это не сделаешь. Проблема в том что комп хранит вещественные числа как мантису и показатель экспоненты. То есть в виде который тебе выдается при простом write, вот так: 1.123е+2 (храниться число 1.123 и число 2). После запятой бесконечное число знаков, точнее не бесконечное, а определяемое числом бит выделенных под хранение твоей вещественной переменной. Если ты хочешь проверять число знаков после запятой у заданной тобой константы, то ты еще может и выкрутишся как-то. А если нужно получить число знаков после запятой у результата каких-то вычислений, то можно нарваться на неприятность, потому как даже результат деления 5/2 может храниться как 2.499999999999. И это не глюк - это особенность работы с вещественными числами.
Я конечно немного утрирую и для специальных случаев можно попробовать делать так как советует Vit - но не удивляйся если в некоторых случаях работать не будет.
PM MAIL ICQ   Вверх
Chingachguk
Дата 23.4.2002, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



А что мешает читать мантиссу ? Формат-то известен ...


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
remax
Дата 23.4.2002, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

Репутация: 1
Всего: 5



Цитата(Mikel @ 22.4.2002, 15:28)
В строку он переводит в стандартно виде- типа 1.123е+2 и долго.

Для этого можно использовать форматный перевод в строку, например FloatToStrF(переменная,fffixed,знаков, после запятой). Может с другими опциями, не помню какие есть еще. Но это скучно.


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
Mikel
Дата 24.4.2002, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Кстати, у меня ещё были проблемы с тпиом double, когда теоритически в ней хранится, например, число 10, то при сравнении с 10 он пишет что они не равны-на последних байтах тварится какая-то фигня(ошибка исправляется,если число умножить и поделить на 10000000 или ещё какое-нть большое число)


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
remax
Дата 24.4.2002, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

Репутация: 1
Всего: 5



Так и должно быть (смотри сообщение Nloge). А насчет такого принудительного округления - так это как раз используется принцип клин-клином. А называется это - ошибка усечения, т.е. при умножении двух чисел с ограниченной разрядностью происходит потеря младших разрядов. Для уменьшения влияния этого вида ошибки существует целая система правил - в каком порядке предпочтительней организовывать вычисления...


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
remax
Дата 24.4.2002, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

Репутация: 1
Всего: 5



Для обсуждения проблем, связанными с ошибками я запустил новую тему в разделе Технологии и Алгоритмы: Про вычислительные ошибки


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
neutrino
Дата 25.4.2002, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Цитата

А что мешает читать мантиссу ? Формат-то известен ...


Я знаю формат числа с плаваюшей точкой (и двойной точности). Но кто подскажет, как число, например float как бы разбить на все 3 части. Я имею ввиду на знак, степень и мантиссу?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Chingachguk
Дата 25.4.2002, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Это из конференции RTFM ;)

Цитата


Не как не могу осмыслить алгоритм перевода, хотя бы даже просто в
десятичное, т.е. имеем одинарной точности FP по стандарту IEEE
 [s][30..Q..23][22.M..0]
по формуле все понятно и вопросов не вызывает
 (S)*(2^[q-127])*M   в общем случае,

для числа 3.5 имеем
     dd 40600000h

              +---------- M -------------+
              |                          |
    30        |                          |
   0100|0000 0110|0000 0000|0000 0000|0000
   ||        |
 S-+|        |
    |        |
    +-- Q ---+

   Вот по всякому кручусь а 3.5 не получается ;-)
   Помогите хотя бы понять последовательность действий.



Примечание (мое) dd 40600000h - Это шестнадцетиричная запись real-числа из 4 -х байт (в паскале - real).


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Mikel
Дата 25.4.2002, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



И ещё
power(-1,1/3)-не вычисляется, мне так кажется потому что 1/3=0.(3), или в переменной 0.33333333333333333333333=33333333333333333333333/(10^23) =>x^(1/3)=корень 10^23 степени из числа x^33333333333333333333333. Как от этого избавиться?


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Chingachguk
Дата 25.4.2002, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Попробуй:

power(a,b) == exp(b*ln(a))

;)


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Mikel
Дата 25.4.2002, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Цитата(Chingachguk @ 25.4.2002, 16:39)
Попробуй:

power(a,b) == exp(b*ln(a))

;)

Ты немного не понял, я говорю про кубический корень из отриц. числа, а на сколько я знаю, ln не существует для отриц. чисел, если я не прав, исправьте.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.