Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Опыт и разработки пользователей ИРБИС :  ИРБИС Irbis
 
Остаток от деления
Пользователь: irygaev (IP-адрес скрыт)
Дата: 14, September, 2015 14:14

Есть ли в языке форматирования операция/функция "остаток от деления"?

Или может есть какой-нибудь простой способ преобразовать время звучания из секунд в формат ЧЧММСС?

Re: Остаток от деления
Пользователь: irygaev (IP-адрес скрыт)
Дата: 14, September, 2015 14:56

Можно было воспользоваться такой записью:
f(val(v19) / 3600 - 0.5, 2, 0)

Но у функции f проблемы с округлением - 0.5 она округляет к нулю, а не к 1.

Re: Остаток от деления
Пользователь: irygaev (IP-адрес скрыт)
Дата: 14, September, 2015 15:17

И ещё f(0) всегда выдаёт пустую строку, независимо от дополнительных параметров. Разве это не прекрасно?

Re: Остаток от деления
Пользователь: Alio (IP-адрес скрыт)
Дата: 14, September, 2015 15:17

Вот конструкция для получения остатка (с точностью до третьего знака после точки) от целочисленного деления содержимого поля 1000 на 2
f(val(v1000)-val(f(val(v1000)/2,0,0))*2,1,3)



Редактировано 1 раз. Последний раз 14.09.2015 15:25 пользователем Alio.

Re: Остаток от деления
Пользователь: irygaev (IP-адрес скрыт)
Дата: 14, September, 2015 15:44

Ага, попробуйте подставьте в вашу формулу '3' - будет минус 1.
Ну или '2' - тоже хорошо - будет пусто.

Re: Остаток от деления
Пользователь: irygaev (IP-адрес скрыт)
Дата: 14, September, 2015 15:52

Если дробная часть = 0.5, то f округляет число до ближайшего чётного )

f(0.5, 0, 0) = 0
f(1.5, 0, 0) = 2
f(2.5, 0, 0) = 2
f(3.5, 0, 0) = 4
f(4.5, 0, 0) = 4

Re: Остаток от деления
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 15, September, 2015 00:13

Цитата:
Или может есть какой-нибудь простой способ преобразовать время звучания из секунд в формат ЧЧММСС?
Для ММСС
if val(v1)<60 then v1 else if val(v1)>60 and val(v1)<60*60 then &uf('G0.'f(val(v1)/60,0,4)) 'мин, ', f(val(&uf('G2.'f(val(v1)/60,0,4)))*0.006,0,0),' сек' fi fi,
Для часов пишите по аналогии.
Если нет юнифора или "встроенной" в язык конструкции, не может быть простого способа.



Редактировано 1 раз. Последний раз 15.09.2015 00:24 пользователем woodyfon.

Re: Остаток от деления
Пользователь: Alio (IP-адрес скрыт)
Дата: 15, September, 2015 09:36

Вот конструкция для получения остатка (с точностью до третьего знака после точки) от деления содержимого поля 1 на содержимое поля 2

'0',&uf('G1.',f(val(v1)/val(v2),0,3))



Редактировано 2 раз. Последний раз 15.09.2015 09:45 пользователем Alio.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.