Вычисление остатка от значения с плавающей запятой является интересной концепцией, лично я до сих пор не слышал об этом.
Согласно вашему описанию, это в основном все о поиске остатка целой части и сложении дробной части в результат?
Если это так, его, вероятно, можно имитировать, используя следующее выражение (в вашем примере): MOD(FLOOR(4.7),2) + 4.7 - FLOOR(4.7)
, учитывая, что целая часть равна FLOOR(4.7)
, а дробная часть, таким образом, 4.7 - FLOOR(4.7)
UPD. Это одно приняло неотрицательные значения с плавающей запятой, в случае отрицательных значений дробная часть, очевидно, равна value - CEIL(value)
. Использование value - TRUNC(value)
будет обобщать поиск дробной части для обоих случаев, но я не совсем уверен относительно результата MOD()
для отрицательных значений, поэтому я бы оставил это вам