реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Базы данных компонентов в Library Manager'е
maailmankaikkeus
сообщение Dec 10 2009, 06:05
Сообщение #16


Частый гость
**

Группа: Validating
Сообщений: 91
Регистрация: 23-09-08
Из: г. Томск
Пользователь №: 40 409



Так это ж наверно, с учетом паразитарных smile.gif


--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
Go to the top of the page
 
+Quote Post
AlexN
сообщение Dec 10 2009, 08:53
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 101
Регистрация: 28-06-04
Пользователь №: 200



Цитата(maailmankaikkeus @ Dec 10 2009, 13:05) *
Так это ж наверно, с учетом паразитарных smile.gif


кстати, интересно, если в строке поиска задать =100nF, DxD найдет 100.0000011686nF - формально не должен, если только это не погрешности отображения на экране. Может быть кто-нибудь попробует?
Go to the top of the page
 
+Quote Post
AlexN
сообщение Dec 18 2009, 12:42
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 101
Регистрация: 28-06-04
Пользователь №: 200



Цитата(AlexN @ Dec 8 2009, 13:52) *
какие-то совсем некрасивые погрешности округления value - совсем нехило DxD пересчитывает!! как обычно у индийских програмеров плоховато с устным счетом. Или у них value тоже в дюймах и при пересчете туда-сюда накапливается погрешность? Или в пинтах каких-нибудь?


Глюк конечно, как обойти:
в конфигурации на отображение поменять формат вывода вручную на %.3f (предлагаемые из списка %.f, %.10f, %.16f приводят к этой ерунде).
И перезапустить DxD.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
fill
сообщение Dec 19 2009, 09:14
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512



Цитата(AlexN @ Dec 18 2009, 15:42) *
Глюк конечно, как обойти:
в конфигурации на отображение поменять формат вывода вручную на %.3f (предлагаемые из списка %.f, %.10f, %.16f приводят к этой ерунде).
И перезапустить DxD.


В списке ошибка - там %f вместо %.f
Если поставите вручную %.f тоже получите искомый результат.


--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю.

www.megratec.ru
Go to the top of the page
 
+Quote Post
AlexN
сообщение Dec 19 2009, 17:38
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 101
Регистрация: 28-06-04
Пользователь №: 200



Цитата(fill @ Dec 19 2009, 16:14) *
В списке ошибка - там %f вместо %.f
Если поставите вручную %.f тоже получите искомый результат.


ошибка не просто в списке (хоть и в списке тоже) - неужели при увеличении количества знаков дробной части величина должна меняться - ведь в базе четко задано (например 0.0000001 а не 0.000000100000186). Или это "типа компиляторы кривые"?
И зачем там в списке вообще 10 знаков после запятой и тем более 16 знаков после запятой? Ну да ладно. Мелочи, но какие-то .. как в известном фильме "все это так непрофессионально..." (Мюллер, "17мгн. весны")
Go to the top of the page
 
+Quote Post
cioma
сообщение Dec 20 2009, 20:51
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 226
Регистрация: 19-06-04
Из: Беларусь
Пользователь №: 65



Это не компиляторы кривые - это реализация кривая. Они используют формат с плавающей запятой (float) для хранения значений. А теперь попробуйте представить 0.0000001 в двоичной системе - это бесконечная дробь (как 1/3 в десятичной системе), отсюда и получаем реальное значение, что хранится в базе равным 0.000000100000186. Возможно, со стороны пользователя это можно обойти если хранить значения как integer c единичным значением, соответствующим малой величине (например 1 мкОм, для резисторов)
Go to the top of the page
 
+Quote Post
AlexN
сообщение Dec 21 2009, 02:53
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 101
Регистрация: 28-06-04
Пользователь №: 200



Цитата(cioma @ Dec 21 2009, 03:51) *
Это не компиляторы кривые - это реализация кривая. Они используют формат с плавающей запятой (float) для хранения значений. А теперь попробуйте представить 0.0000001 в двоичной системе - это бесконечная дробь (как 1/3 в десятичной системе), отсюда и получаем реальное значение, что хранится в базе равным 0.000000100000186. Возможно, со стороны пользователя это можно обойти если хранить значения как integer c единичным значением, соответствующим малой величине (например 1 мкОм, для резисторов)



а я почему-то раньше думал, что float - это мантисса (целое число с довольно большой разрядностью) и порядок (тоже целое). по идее в нашем случае мантисса это типа 100000000 (а не 1000001186) а порядок - ...ну сами прикиньте. В противном случае ракеты вообще летать не должны - погрешность просто дикая (на мой взгляд).

исследуем дальше. Собственно все ясно. Скорее всего, представление value в DxD - плавающее с двойной точностью. А в sampleLib.mdb - плавающее с одинарной точностью. При изменении типа поля value в sampleLib.mbd на двойную точность все это и имеем.
Итог: при создании своей базы данных желательно использовать для value тип данных "двойное с плавающей точкой". Тогда артефакты исчезнут.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
AlexN
сообщение Dec 21 2009, 04:10
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 101
Регистрация: 28-06-04
Пользователь №: 200



Цитата(fill @ Dec 19 2009, 16:14) *
В списке ошибка - там %f вместо %.f
Если поставите вручную %.f тоже получите искомый результат.


в этом случае дробная часть не отображается совсем (посмотрите, вместо 3.3uF отображается 3uF)
Go to the top of the page
 
+Quote Post
fill
сообщение Dec 21 2009, 18:25
Сообщение #24


Гуру
******

Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512



Цитата(AlexN @ Dec 21 2009, 07:10) *
в этом случае дробная часть не отображается совсем (посмотрите, вместо 3.3uF отображается 3uF)


Согласен.


--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю.

www.megratec.ru
Go to the top of the page
 
+Quote Post
baken
сообщение Dec 24 2009, 06:59
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 27-01-09
Из: г.Жирновск
Пользователь №: 44 025



Цитата(AlexN @ Dec 21 2009, 06:53) *
Собственно все ясно. Скорее всего, представление value в DxD - плавающее с двойной точностью. А в sampleLib.mdb - плавающее с одинарной точностью. При изменении типа поля value в sampleLib.mbd на двойную точность все это и имеем.
Итог: при создании своей базы данных желательно использовать для value тип данных "двойное с плавающей точкой". Тогда артефакты исчезнут.

Цитата(AlexN @ Dec 21 2009, 08:10) *
в этом случае дробная часть не отображается совсем (посмотрите, вместо 3.3uF отображается 3uF)


Вот, единственный человек, который наконец то разобрался в вопросе. Спасибо.

Сообщение отредактировал baken - Dec 24 2009, 07:07


--------------------
Еж - птица гордая. Не пнешь - не полетит.
Go to the top of the page
 
+Quote Post
vitan
сообщение Dec 24 2009, 19:27
Сообщение #26


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Я извиняюсь, но можно для тех, кто на бронепоезде?
Если у меня microsoft sql server, то какой тип данных ставить? Перепробовал все, что можно, но в каждом варианте свои проблемы.
При этом с access-ом все хорошо.
Нужно, чтобы нормально отрабатывала функция automatic magnitude, и при этом хранимые числа были от 0,000000000000001 (1фемто) до "как можно больше".
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 24 2009, 19:31
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



А может, просто "string" - точность будет абсолютная до любого знака, и хранить можно номинал в любом виде, будь то он числовой, или в виде какого-то буквенно-цифрового кода.
Go to the top of the page
 
+Quote Post
cioma
сообщение Dec 25 2009, 14:09
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 226
Регистрация: 19-06-04
Из: Беларусь
Пользователь №: 65



можно, только поиск по "больше-меньше" работать не будет
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 25 2009, 14:16
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(cioma @ Dec 25 2009, 17:09) *
можно, только поиск по "больше-меньше" работать не будет

почему? Просто у строк критерии "больше-меньше" другие, сравниваются коды первых отличающихся символов. Да и я не уверен, что поиск по "больше-меньше" актуален. Тут ведь нужен всегда вполне определенный номинал, и как правило из заранее извесного ряда.

Плюс еще вот что... Я например в номинале храню "разновидности" микросемы - например компонент TPS6220x, а номинал - TPS62207
Go to the top of the page
 
+Quote Post
vitan
сообщение Dec 25 2009, 17:28
Сообщение #30


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(SM @ Dec 25 2009, 17:16) *
почему? Просто у строк критерии "больше-меньше" другие, сравниваются коды первых отличающихся символов. Да и я не уверен, что поиск по "больше-меньше" актуален. Тут ведь нужен всегда вполне определенный номинал, и как правило из заранее извесного ряда.

Плюс еще вот что... Я например в номинале храню "разновидности" микросемы - например компонент TPS6220x, а номинал - TPS62207

Поиск по "больше-меньше" и по диапазону актуален, ибо база может использоваться не только разработчиками, но и логистами, бухгалтерами и т.п. Им может потребоваться создавать, например, запросы для оценки стоимости комплектующих и т.п.
Я лично, думаю, что в номинале нужно хранить номинал, т.е. основную характеристику компонента. У меня номиналы вообще хранятся под истинными названиями, например "Resistance" для резисторов. При аннотации в схему происхдоит замена его на VALUE.
Только вот проблема: как перевели базу на SQL SERVER, начали возникать описанные выше эффекты. Кто-нибудь использует такую же конфигурацию? Какие типы полей нужны для чисел?
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01524 секунд с 7
ELECTRONIX ©2004-2016