
BG Development · За реклама · За контакти |
![]() ![]() ![]() ![]() ![]() |
Здравей! ( Включване | Регистриране ) |
Страници: (4) [1] 2 3 ... последна » ( Първото ново мнение ) | ![]() ![]() ![]() |
thrawn |
Публикувано на: 13-08-2019, 15:24
|
||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3712 Регистриран на: 17.01.17 ![]() |
Щото си нямам друга работа, реших да опаковам операциите в рам-ът в база данни. За сега е in memory ама с идея да се ползва локална такава някога. Та защото sqlite -а е лекинко ограничен откъм типове данни за всички суми количества и т.н. ползвам цели числа. Та се заиграх с изчисляването на данъкът. Някой сеща ли се за по-чист начин да се сметна (сумите са с точност до стотна а количествата - хилядна)
Това мнение е било редактирано от thrawn на 13-08-2019, 15:25 |
||
dvader |
Публикувано на: 13-08-2019, 19:58
|
![]() ![]() Име: Група: VIP Ранг: Почетен член Мнения: 5268 Регистриран на: 12.07.05 ![]() |
Няма ли fixed point за тебе...
Цена в стотинки, количества в грамове... -------------------- I find your lack of faith disturbing
|
thrawn |
Публикувано на: 13-08-2019, 20:02
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3712 Регистриран на: 17.01.17 ![]() |
Ми, в нормалните бази данни има. Тука не, затова и питам...
Да не говорим, че постановката е леко опростена заради наличието на отстъпка в проценти или стойност по ред или за транзакция. Ако някой има идея за решение да казва. Става дума за sqlite. |
bvbfan |
Публикувано на: 13-08-2019, 20:14
|
||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 4143 Регистриран на: 08.12.13 ![]() |
Как така ще няма? SQLite има float формат.
--------------------
|
||
thrawn |
Публикувано на: 13-08-2019, 20:36
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3712 Регистриран на: 17.01.17 ![]() |
С плаваща запетая е.
|
dvader |
Публикувано на: 13-08-2019, 20:50
|
||
![]() ![]() Име: Група: VIP Ранг: Почетен член Мнения: 5268 Регистриран на: 12.07.05 ![]() |
Ма fixed point нямах предвид да ползваш такъв тип а да си ползваш най нормален integer. В sqlite мисля си беше 64 битов, би трябвало да ти стигне. -------------------- I find your lack of faith disturbing
|
||
thrawn |
Публикувано на: 13-08-2019, 20:59
|
||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3712 Регистриран на: 17.01.17 ![]() |
Ми баш инт ползвам де. "Проблемът" не в самото съхранение на данните а в сметките. Изчисляването на данните минава през float и нещо не ми допада много много. Или може би, не ти разбрах първия пост. Точно това имах в предвид с точността. Цената е в стотинки (точност до стотна) а количеството в грамове (точност до хилядна). Ей тоя фрагмент нещо ми е грозен:
|
||
dvader |
Публикувано на: 13-08-2019, 21:07
|
![]() ![]() Име: Група: VIP Ранг: Почетен член Мнения: 5268 Регистриран на: 12.07.05 ![]() |
huh, ми разкарай ги тия .0, за какво са ти?
13% от 50 са ти 50 * 0,13. Ако искаш точност два знака правиш (50 * 100) * (0,13 * 100) / (100 * 100) Ако искаш три знака, вместо 100 ползваш 1000 и т.н. -------------------- I find your lack of faith disturbing
|
thrawn |
Публикувано на: 13-08-2019, 21:18
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3712 Регистриран на: 17.01.17 ![]() |
Размерът на данъка също е цяло число (20% -> 2000). Така цялото изчисление става с цели числа, и деленето съответно е целочислено (вместо 1.2 се плучава 1). Та нулите са за да не ползвам целочислено делене.
|
dvader |
Публикувано на: 13-08-2019, 22:01
|
![]() ![]() Име: Група: VIP Ранг: Почетен член Мнения: 5268 Регистриран на: 12.07.05 ![]() |
Цялата идея на fixed point *е* да ползваш целочеслено делене.
https://en.wikipedia.org/wiki/Fixed-point_arithmetic -------------------- I find your lack of faith disturbing
|
![]() |
![]() ![]() ![]() |