Удаление цифр после запятой

Все вопросы/проблемы по установке и использовании.
Nadinka
Сообщения: 17
Зарегистрирован: 02 май 2023, 12:09
Имя: Nadin
Откуда: Россия

Удаление цифр после запятой

Сообщение Nadinka »

Здравствуйте
Подскажите пожалуйста, как настроить отображение целого числа, без запятых и без округления в бОльшую сторону?
напр из 199,99 сделать 199.
очень надо, т.к. в программе отображается сумма всех чисел (с цифрами после запятой), а по факту суммируем числа только целые. Получается нестыковка при отчетности.. :cry:
Аватара пользователя
Develop-Soft
Сообщения: 599
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Re: Удаление цифр после запятой

Сообщение Develop-Soft »

"Отображение" где?
php: floor(199.99) = 199
JS: Math.trunc(199.99) = 199
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Удаление цифр после запятой

Сообщение nruslan2 »

в числовых полях есть поле настройки отображения, там можно задать так же округление
Аватара пользователя
Develop-Soft
Сообщения: 599
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Re: Удаление цифр после запятой

Сообщение Develop-Soft »

nruslan2 писал(а): 05 сен 2023, 19:40 в числовых полях есть поле настройки отображения, там можно задать так же округление
Что-то пробовал менять маску - все равно дает ввести с дробью.

Так работает:

Код: Выделить всё

var n = 298; // id числового поля

$("#fields_"+n).on('blur',function(){
  $("#fields_"+n).val(Math.trunc($("#fields_"+n).val())); 
});
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1196
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:

Re: Удаление цифр после запятой

Сообщение Fait »

При этом, если в поле при сохранении останутся таки цифры после запятой, данное поле в вычислениях и формулах использовать лучше с осторожностью, так как сумма чисел (к примеру) 199,99 и 149,99 даст в итоге 349 (при той же округляющей в меньшую сторону маске).
Так что, если у вас цель получить из вышеупомянутого примера не 349, а 348 (как сумму 199 и 149), то округление нужно будет применять также и в формуле.
Я делал подобный функционал (там программа лояльности была, отсекающая копейки при оплате наличными).
И ещё, считаю неправильным отсекать копейки в форме ввода, так как цифра без копеек может повлиять на отчётность.
А потом будете гадать, почему суммы там-то и там-то не сходятся на несколько рублей...

P.S.: На SQL команда FLOOR([xxx]) округляет в меньшую сторону.
Аватара пользователя
Antonyous99
Сообщения: 752
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Удаление цифр после запятой

Сообщение Antonyous99 »

Мы не меняем исходные данные, там все с копейками, просто показываем результат (сумму этх данных) без копеек.
Если в исх. данных копейки накопятся, результат на 1 рубль больше станет, что и требуется.
И никаких "подоводных камней".
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Аватара пользователя
Develop-Soft
Сообщения: 599
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Re: Удаление цифр после запятой

Сообщение Develop-Soft »

Antonyous99 писал(а): 06 сен 2023, 19:14 Если в исх. данных копейки накопятся, результат на 1 рубль больше станет
Интересно... Это по какому алгоритму, если округление только в меньшую сторону..?
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1196
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:

Re: Удаление цифр после запятой

Сообщение Fait »

Develop-Soft писал(а): 06 сен 2023, 19:31
Antonyous99 писал(а): 06 сен 2023, 19:14 Если в исх. данных копейки накопятся, результат на 1 рубль больше станет
Интересно... Это по какому алгоритму, если округление только в меньшую сторону..?
Округлённое значение в расчётах не участвует.
Кроме случаев, когда это самое округлённое значение сохранено как есть.
А если взять простую сумму по полю с изначальным значением, то все копейки будут учтены.

Поможет только формула (если это поле MySQL Формула): SUM(FLOOR([777]))
Вот она и посчитает сумму уменьшенных значений, если это необходимо.
А если применить FLOOR(SUM([777])), то всё копейки будут учтены.

Возьмём пример, где нужно сложить 149.99 + 99.99
SUM([777]) выдаст 249.98
SUM(FLOOR([777])) выдаст 248
FLOOR(SUM([777])) выдаст 249

Конечно же, не забываем про SELECT ... FROM ... WHERE ...
Аватара пользователя
Antonyous99
Сообщения: 752
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Удаление цифр после запятой

Сообщение Antonyous99 »

Представтье стандартный столбец в Эксель, заполненные исх. данными - числами с копейками.
В самом низу столбца - Сумма. Удаляем от нее дробную часть.
Разве целая часть Суммы не будет зависеть от копеек в исх. данных?
FLOOR(SUM([777])) выдаст 249
Вот и я об этом!
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1196
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:

Re: Удаление цифр после запятой

Сообщение Fait »

Nadinka писал(а): 05 сен 2023, 14:51 Здравствуйте
Подскажите пожалуйста, как настроить отображение целого числа, без запятых и без округления в бОльшую сторону?
напр из 199,99 сделать 199.
очень надо, т.к. в программе отображается сумма всех чисел (с цифрами после запятой), а по факту суммируем числа только целые. Получается нестыковка при отчетности.. :cry:
Добавьте поле с типом MySQL формула и в нём пропишите

Код: Выделить всё

FLOOR([777])
Сумма по этому полю даст вам верное значение, которого вы добиваетесь.
Ответить