Чтобы ограничить точность:
Если x - это число с плавающей запятой, округления нет:
(смещение вверх на 2 десятичных знака, дробь дроби, смещение вниз на 2 десятичных знака)
((int)(x*100.0)) / 100.0F
Поплавок с округлением:
((int)(x*100.0 + 0.5F)) / 100.0F
Двойной без округления:
((long int)(x*100.0)) / 100.0
Двойной с округлением:
((long int)(x*100.0 + 0.5)) / 100.0
Примечание.float
или double
, дробная часть всегда будет там.Это разница между представлением # ( IEEE 754 ) и точностью #.
C99 поддерживает round ()