2013年7月11日木曜日

NSDateでマイナスの値が返る場合はfabs関数で絶対値を取る

以前に「NSDateで経過時間を取得する」という記事を書いたのですが、取得した時間を"秒数"で取得した際に、その値がたまにマイナスを返ってくることがありました。

対処方法

fabs()を使い、浮動小数点数の絶対値を取得します。
/* NSDateで経過時間を取得する | ② 経過時間を取得 (http://obc-fight.blogspot.jp/2013/06/Get-the-elapsed-time-NSDate.html) */

float ss = fabs(tmp - (float)(hh*3600+mm*60));  // fabs()で囲む

おわり

fabs()のほかにも絶対値を返す関数がいくらかあります。以下を参照してください。

abs/labs/fabs関数 - C言語の基礎

時間はマイナスで表されるということはまずありえないので毎回絶対値を取ったほうがいいかもしれませんね。

参考記事

過去のNSDateと現在のNSDateを比較して何秒経ったかを得る - 琴線探査

0 件のコメント:

コメントを投稿