|
|
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
Привет всем. Я уже лет 3 юзаю MySQL но с таким еще не встречался.... пишу запрос Insert into t2620 (BS,VID,SUMA_MO,SUMA_SYBR, RIZ) VALUES ('26209793337101', '45', 156782.18, 156792.68, -10.50) Но мне в поле SUMA_MO забывает 156782.19 а не 156782.18 аналогично и с другим числом ! Нужно отметить, что при маленьких числах, все нормально !!! Что это такое ?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 10:50 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
тип поля float? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 14:25 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
Тип поля float (16,2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 15:00 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
все эти (16, 2) --- филькина грамота. во float хранятся приближённые значения, точность ограничена кол-вом байт, а не (16,2). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 16:43 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
Лучше используй поле типа Double И к тому же неужели нужно тут 16 разрядов ??? Разве есть юзеры способные положить на вклад такую сумму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 18:46 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
User_NameЛучше используй поле типа Double надо объяснять в чём идиотизм данного совета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2004, 19:43 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
2 Sad Spirit Попробуйте //OffTop По Вашим топикам на этой ветке (MySql) я понял что у Вас просто воспитания не хватает поэтому не обижаюсь :) //End OffTop ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 12:24 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
Ну вот не поленился полезть в доку по моему MySql 3.23 серверу и пара выдержек оттуда: .. Note that using `FLOAT' may give you some unexpected problems as all calculations in MySQL are done with double precision. *Note No matching rows::. If you are comparing `FLOAT' or `DOUBLE' columns with numbers that have decimals, you can't use `'=''. This problem is common in most computer languages because floating-point values are not exact values. In most cases, changing the `FLOAT' to a `DOUBLE' will fix this . *Note Problems with float::. (manual.txt) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 12:43 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
ну, человеку, который всю МУДрость черпает из мануала мыскля, что-то объяснять бесполезно. свободен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 15:59 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
2 Sad Spirit //OffTop Н-да вот это ответ )))) т.е. "Инструкции читают только ламеры" ((С) Если б программисты строили дома) Обьяснения просто КЛАСС В общем тоже свободен. //End Offtop ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 16:24 |
|
||
|
Проблема с MySQL (округление)!
|
|||
|---|---|---|---|
|
#18+
Sad Spirit, не стоит так сразу в штыки... :) User_Name, просто "некоторые" числа в BIN-e имеют вид бесконечной дроби. Скажем, например попадется десятичное число xxx.5, которое при переводе DEC->BIN даст вам xxx.4999999999(9) в десятичном эквиваленте. Ну примерно также как невозможно выразить одну треть в виде конечной десятичной дроби. Правильно использовать не float или double, а decimal, или numeric, с указанием нужной точности. авторIf you are comparing `FLOAT' or `DOUBLE' columns with numbers that have decimals, you can't use `'=''. This problem is common in most computer languages because floating-point values are not exact values. In most cases, changing the `FLOAT' to a `DOUBLE' will fix this . Абсолютно верно. Попробуйте, на любом языке на любой ОС сделайте сложные вычисления через float, а потом сравните БЕЗ ОКРУГЛЕНИЯ с переменной, значение которой впишите от руки. ПолУчите False. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2004, 16:59 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=681&tid=1854965]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 426ms |

| 0 / 0 |
