會出現錯誤,因為 mod 是取餘數(註一)
而 double 因為有小數點,只要是有理數的話,都可以 double 表示
所以一運算之下,結果沒有餘數,因此 gcc 預設會出現錯誤訊息。
本來想用 floor( )這個函數加上一些運算來代替這功能,
但floor( )只能回傳 largest interger value
所以 傳入floor( ) 的值也不能太大...
就算是unsigned long interger 也只大約 4*10^9
比起 double 可到 10^308 可說是小到不行啊...
註一:Wikipedia:Modulo_operation
沒有留言:
張貼留言