Одна большая разница - это отрицательные числа; если вы измените myF
на -5.6
, тогда приведение к int вернет -5
, тогда как floor(myF)
будет -6
.
Что касается того, что является предпочтительным, то, как правило, я бы сказал, что приведение к int возможно только в том случае, если вы знаете , это то, что вам нужно - и поскольку вы спрашиваете здесь, есть вероятность Вы, вероятно, хотите floor
.
(Также обратите внимание, что при форматировании printf
, %ld
- это длинное целое число; двойное число равно %lf
.)