Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Mysql. Не работает ROUND() [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Без описания
MiksIr
Отправлено: 23 Июня, 2015 - 01:11:35
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Нет, от децимала это словить нельзя.


-----
self-banned
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 01:13:07
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Это как?
Покажи как децимал избежит такой участи
 
 Top
MiksIr
Отправлено: 23 Июня, 2015 - 01:21:49
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Блин, ну это же очевидно. В децимал это число хранится как 10.12 - сам рассказывал.
А во float как 10.11999999999999921840299066388 979554176330566406250


-----
self-banned
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 01:24:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Ну и?
Не вижу как это работает?
Обрубаем на клиенте на 2 знака после запятой
И далее что?
Не....хочешь хранить в больших байтах дело твое....как дискретность представления числа касается проблемы????
(Добавление)
MiksIr пишет:
В децимал это число хранится как 10.12 - сам рассказывал.
нигуя
Я рассказывал именно что оно выглядит так
А хранится гораздо хуже
О чем я долблю ваши бошки
 
 Top
MiksIr
Отправлено: 23 Июня, 2015 - 01:29:22
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Да твоя экономия на спичках волнуе только твое эго, заруби себе.
Всем глубоко п сколько байт там это число будет занимать. Будет проблема - тогда будет решение. А рассуждение с умным видом "а это вот плохо по производительности" - удел ламеров.

А вот то, что можно забыв поставить где-то округление получить иную сумму - реальный и печальный кейс, на который натыкаются все в большей или меньше степени. Не веришь - иди проверяй сам.


-----
self-banned
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 01:32:15
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




MiksIr я это понимаю
Спасибо за позитиффУлыбка
Нууу....буду один такой дурак понимать что есть дискретность представления и представление чисел повышенной точностиУлыбкаУлыбкаУлыбка
Мой крестУлыбка
(Добавление)
Хотя когда у тебя 10 000 товаров наверное действительно пофиг
(Добавление)
Я ламерУлыбка
 
 Top
MiksIr
Отправлено: 23 Июня, 2015 - 01:36:54
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Тем, кому не пофиг место или производительность - хранят *int сдвигая запятую с нужной точностью. Но никогда не float.


-----
self-banned
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 01:41:21
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




MiksIr Ха-ха а это уже вопрос второй
(Добавление)
А че за звездачка перед интежером? Это такое поле в мускуле?
 
 Top
MiksIr
Отправлено: 23 Июня, 2015 - 01:46:21
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Это имелось ввиду (small|big|оченьbig)int


-----
self-banned
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 01:49:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




MiksIr ааа...ясн
А можно глупый вопрос? Вот когда ты спотыкался на хранении денег в флоате? Может не денег?
Вообще было чтото более чем теоретическая проблема дискретности представления чисел? Тыж говорил чтото о граблях
Было?УлыбкаУлыбкаУлыбка
 
 Top
MiksIr
Отправлено: 23 Июня, 2015 - 01:52:53
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]




-----
self-banned
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 01:55:05
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Так себе пример
Вернее ничем не показательно
Что флоат что децимал
Проблемы те же
Дискретное представление...наверное я ламер
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Июня, 2015 - 01:56:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мне нужно было сравнивать, группировать и мерджить введенные разными людьми коэффициенты, хранил в децимале.
 
 Top
LIME
Отправлено: 23 Июня, 2015 - 01:59:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




DeepVarvar так об этом и речь
Флоат менее прожорлив
Он быстрее
Это число
Децимал это число собираемое мускулом
Это сложнее априори
Хотя я думаю тут уже это никого не интересует
Зато 2 знака после запятрй
 
 Top
MiksIr
Отправлено: 23 Июня, 2015 - 02:01:00
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


В конкретном примере да, даже int не спас бы. Зато очень показательный о каких вообще проблемах я говорю.

А если юзать float бездумно - то можно словить аналогичные проблемы на ровном месте. Не, с float можно жить если всегда думать о точности и всегда приволить к нужной точности. round лучший друг. Но нахрена себе такую свиню подкладывать?

Нет, на более простых случаях именно с деньгами я не сталкивался, ибо предпочитаю пользоваться опытом других людей не набивая шишки на пройденных ими граблях.

А вот не с деньгами проблемы сравнения, когда где-то round забыли - вылезает, да. Очень редко, конечно, ибо работа с float вообще не часто случается. Да на любом форуме можно найти десяток постов нубов с вопросами "чойта у меня одинаковые числа при сравнении false дают".


-----
self-banned
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB