int(x) = x - x%1
floor(x) = int(x)-(x<0 && x%1!=0)
ceil(x) = int(x)+(x>0 && x%1!=0)
round(x) = floor(x)+(x>0&&x%1>=0.5)+(x<0&&(1+x%1)%1>=0.5)
примечание: round(x)
не реализовано как floor(x+0.5)
, поскольку произойдет сбой при x=0.5-2^-54
примечание: предполагается, что логические операции преобразуются в целочисленные значения 1 для true и 0 для false
Реализации сделаны так, чтобы они соответствовали доменам, определенным в int(x)
, floor(x)
, ceil(x)
и round(x)