|
Отсутствие в 1с числовых реквизитов с плавающей запятой и способы реализации. | ☑ | ||
---|---|---|---|---|
0
Провинциальный 1сник
21.12.15
✎
07:35
|
Как известно, в 1с числовые переменные хоть и не с плавающей точкой, но фактически "с неограниченной точностью". Тем не менее, в базе нельзя хранить больше 10 значащих цифр после запятой.
Как лучше обойти данное ограничение в случае необходимости хранить более точные значения? Можно хранить как строки, и работать с ними через ЗначениеВСтрокуВнутр/ЗначениеИзСтрокиВнутр - это работает. Но может есть лучший способ? |
|||
1
Повелитель
21.12.15
✎
07:37
|
Храни умноженное на 1 млн, или 1 млрд.
|
|||
2
Повелитель
21.12.15
✎
07:39
|
Как число имею ввиду.
0.1234567890123456789 можно хранить как 123456,7890123456789 или 123456789,0123456789 |
|||
3
Провинциальный 1сник
21.12.15
✎
07:40
|
(2) Это понятно, хранить само значащее число и нормализующий коэффициент.
|
|||
4
PuhUfa
21.12.15
✎
07:45
|
(0) как вариант: хранить в обычном числовом реквизите.
в целой части хранить все число целиком без запятой, в дробной хранить позицию этой самой запятой. |
|||
5
ObjectRelation Model
21.12.15
✎
07:58
|
а какие такие высокоточные задачи у вас 1С решает?
|
|||
6
ИС-2
naïve
21.12.15
✎
08:01
|
хранить в строке, а при вычислении умножать 1000000000000000
Но может ли SQL работать с таким числами... |
|||
7
H A D G E H O G s
21.12.15
✎
08:10
|
Значение отдельно, мантиссу отдельно
|
|||
8
Drac0
21.12.15
✎
08:11
|
(0) Хранить два числовых реквизита: целая часть и десятичная часть.
|
|||
9
ДемонМаксвелла
21.12.15
✎
08:24
|
(0) в порядке бреда - хранить логарифм числа
|
|||
10
H A D G E H O G s
21.12.15
✎
08:29
|
(9) Почему бреда? Так делают все.
|
|||
11
ДемонМаксвелла
21.12.15
✎
08:33
|
(10) потери машинного времени на вычисления. Но если это несущественно, то почему бы и нет.
|
|||
12
ifso
21.12.15
✎
08:33
|
(0) пи не влазит?)
|
|||
13
Провинциальный 1сник
21.12.15
✎
08:36
|
(12) Например, при необходимости хранить промежуточные данные расчета себестоимости в многоузловом многопередельном производстве. Там лишней точности не бывает, в себестоимости например заклепки копейка - это очень много.
|
|||
14
vde69
21.12.15
✎
08:51
|
(13) 10 знаков после запятой это с огромным избытком...
предположим в изделии миллион деталек, значит точность самого изделия это 6 нулей (миллион) + 2 нуля (копейки), итого 8 знаков.... что за изделия у Вас ? |
|||
15
ifso
21.12.15
✎
08:51
|
(13) если решишь как обмануть оперирование, то сможешь забить на хранение, не?
|
|||
16
Повелитель
21.12.15
✎
08:54
|
(13) Тогда задача проще, 10 знаков или даже меньше вам точно хватит.
У нас есть один сложный подгон по ценам, так нам 6 знаков хватило. |
|||
17
VladZ
21.12.15
✎
08:55
|
(0) Зачем это нужно?
|
|||
18
vde69
21.12.15
✎
08:56
|
(13) я тебе так скажу, у шли заказы на метиз (гайки, саморезы и т.д.) в тендерах везде стояла цена за 1шт в $ (например 1шт= 0.00013544$) заказчику это нужно было для сравнения цен разных производителей.
не смотря на такие цифорки я придумал алгоритмы которые позволяют нам обходится 2 знаками после запятой и вполне штатно работать в торговле и бухии... так, что у Вас что-то не то в королевстве... |
|||
19
Провинциальный 1сник
21.12.15
✎
09:09
|
(18) Да можно придумать алгоритмы, всё можно. Но работать с плавучкой в некоторых случаях было бы просто удобнее.
|
|||
20
Мэс33
21.12.15
✎
09:14
|
(19) в бухгалтерии не бывает таких потребностей.
Хотя бы четкий пример привели. |
|||
21
HeKrendel
21.12.15
✎
09:19
|
Храни такие значения в строке ;-)
|
|||
22
Провинциальный 1сник
21.12.15
✎
10:07
|
(20) Кролик это не только ценный мех, 1с это не только бухгалтерия)
|
|||
23
Провинциальный 1сник
21.12.15
✎
10:08
|
(21) Ну я это и предложил в (0), но в этом случае язык запросов не сможет обрабатывать такие данные.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |