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

Re: Удаление цифр после запятой
Добавлено: 05 сен 2023, 17:48
Develop-Soft
"Отображение" где?
php: floor(199.99) = 199
JS: Math.trunc(199.99) = 199
Re: Удаление цифр после запятой
Добавлено: 05 сен 2023, 19:40
nruslan2
в числовых полях есть поле настройки отображения, там можно задать так же округление
Re: Удаление цифр после запятой
Добавлено: 05 сен 2023, 20:08
Develop-Soft
nruslan2 писал(а): 05 сен 2023, 19:40
в числовых полях есть поле настройки отображения, там можно задать так же округление
Что-то пробовал менять маску - все равно дает ввести с дробью.
Так работает:
Код: Выделить всё
var n = 298; // id числового поля
$("#fields_"+n).on('blur',function(){
$("#fields_"+n).val(Math.trunc($("#fields_"+n).val()));
});
Re: Удаление цифр после запятой
Добавлено: 06 сен 2023, 18:56
Fait
При этом, если в поле при сохранении останутся таки цифры после запятой, данное поле в вычислениях и формулах использовать лучше с осторожностью, так как сумма чисел (к примеру) 199,99 и 149,99 даст в итоге 349 (при той же округляющей в меньшую сторону маске).
Так что, если у вас цель получить из вышеупомянутого примера не 349, а 348 (как сумму 199 и 149), то округление нужно будет применять также и в формуле.
Я делал подобный функционал (там программа лояльности была, отсекающая копейки при оплате наличными).
И ещё, считаю неправильным отсекать копейки в форме ввода, так как цифра без копеек может повлиять на отчётность.
А потом будете гадать, почему суммы там-то и там-то не сходятся на несколько рублей...
P.S.: На SQL команда FLOOR([xxx]) округляет в меньшую сторону.
Re: Удаление цифр после запятой
Добавлено: 06 сен 2023, 19:14
Antonyous99
Мы не меняем исходные данные, там все с копейками, просто показываем результат (сумму этх данных) без копеек.
Если в исх. данных копейки накопятся, результат на 1 рубль больше станет, что и требуется.
И никаких "подоводных камней".
Re: Удаление цифр после запятой
Добавлено: 06 сен 2023, 19:31
Develop-Soft
Antonyous99 писал(а): 06 сен 2023, 19:14
Если в исх. данных копейки накопятся, результат на 1 рубль больше станет
Интересно... Это по какому алгоритму, если округление только в меньшую сторону..?
Re: Удаление цифр после запятой
Добавлено: 06 сен 2023, 22:18
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 ...
Re: Удаление цифр после запятой
Добавлено: 06 сен 2023, 22:25
Antonyous99
Представтье стандартный столбец в Эксель, заполненные исх. данными - числами с копейками.
В самом низу столбца - Сумма. Удаляем от нее дробную часть.
Разве целая часть Суммы не будет зависеть от копеек в исх. данных?
FLOOR(SUM([777])) выдаст 249
Вот и я об этом!
Re: Удаление цифр после запятой
Добавлено: 06 сен 2023, 22:28
Fait
Nadinka писал(а): 05 сен 2023, 14:51
Здравствуйте
Подскажите пожалуйста, как настроить отображение целого числа, без запятых и
без округления в бОльшую сторону?
напр из 199,99 сделать 199.
очень надо, т.к. в программе отображается сумма всех чисел (с цифрами после запятой), а по факту суммируем числа только целые. Получается нестыковка при отчетности..
Добавьте поле с типом MySQL формула и в нём пропишите
Сумма по этому полю даст вам верное значение, которого вы добиваетесь.