小数点以下第一位で四捨五入
C言語には四捨五入の関数がないです。浮動小数点を整数型にキャストすると小数点以下は切り捨てられてしまいます。
そこで、四捨五入を実現すには以下のようにします。
(int)(value + 0.5)
これで浮動小数点型変数valueは四捨五入されることになります。
ex)
(int)(2.01 + 0.5) = 2
(int)(2.49 + 0.5) = 2
(int)(2.50 + 0.5) = 3
(int)(2.99 + 0.5) = 3
(int)(-2.01 + 0.5) = -2
(int)(-2.49 + 0.5) = -2
(int)(-2.50 + 0.5) = -2 ・・・・あれ?
(int)(-2.75 + 0.5) = -2 ・・・・あれ?
(int)(-2.99 + 0.5) = -2 ・・・・あれ?
valueが負の時"五入以上"はできないようです。(言い方変)
ということでvalueが負の時は
-(int)(-value + 0.5)
になるのかな。