Re: [語法] 在寫程式時 遇到將浮點數轉換成整數的問題
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 123.193.12.79
: 推 VictorTom:您提了我才發現, 為什麼ceil/floor回傳都是浮點數啊@_@" 09/15 22:31
: → VictorTom:這兩個不就一個round up一個round down嗎@_@" 09/15 22:31
: → pttfly:yes @@" 09/15 22:31
: 推 holymars:不然要回傳int嗎..要是超過int範圍不就炸了XD 09/15 22:58
: → VictorTom:有道理說, 我忘了浮點數值域遠大得多; 可是這樣一來把浮 09/15 23:52
: → VictorTom:點誤差考慮進來, 搞不好傳回來的又是個錯的結果啊@_@" 09/15 23:53
考慮一下float的格式就知道這種事不會發生
float的數字都能表達成 (M) * 2^N 這種格式
單精度的話M由23個bit組成
如果N >=0 float一定是個整數 回傳值沒有誤差問題
如果N <= -23 float一定是個0~1中間的數 回傳值也不會有誤差問題
如果N是-1~-22 M的bit表達一定能分為「整數部」和「小數部」兩個部份
把小數部丟掉 回傳值一樣不會有誤差問題 XD
有的指令集會有ceil和floor的指令
在x86上的話你可以用SSE硬幹一個出來
http://gcc.gnu.org/ml/gcc-patches/2006-10/msg01468.html
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.15.163
推
09/16 11:54, , 1F
09/16 11:54, 1F
→
09/16 11:55, , 2F
09/16 11:55, 2F
推
09/16 12:09, , 3F
09/16 12:09, 3F
→
09/16 12:10, , 4F
09/16 12:10, 4F
→
09/16 12:10, , 5F
09/16 12:10, 5F
推
09/17 00:16, , 6F
09/17 00:16, 6F
推
09/17 11:32, , 7F
09/17 11:32, 7F
→
09/17 11:32, , 8F
09/17 11:32, 8F
→
09/17 11:33, , 9F
09/17 11:33, 9F
→
09/17 11:34, , 10F
09/17 11:34, 10F
推
09/17 11:48, , 11F
09/17 11:48, 11F
推
09/17 11:57, , 12F
09/17 11:57, 12F
→
09/17 11:58, , 13F
09/17 11:58, 13F
→
09/17 11:59, , 14F
09/17 11:59, 14F
→
09/17 11:59, , 15F
09/17 11:59, 15F
推
09/17 12:01, , 16F
09/17 12:01, 16F
→
09/17 12:01, , 17F
09/17 12:01, 17F
→
09/17 12:02, , 18F
09/17 12:02, 18F
推
09/17 12:35, , 19F
09/17 12:35, 19F
→
09/17 12:35, , 20F
09/17 12:35, 20F
推
09/17 12:38, , 21F
09/17 12:38, 21F
推
09/17 12:54, , 22F
09/17 12:54, 22F
→
09/17 12:55, , 23F
09/17 12:55, 23F
推
09/17 12:58, , 24F
09/17 12:58, 24F
→
09/17 13:00, , 25F
09/17 13:00, 25F
推
09/17 13:01, , 26F
09/17 13:01, 26F
→
09/17 13:01, , 27F
09/17 13:01, 27F
→
09/17 13:05, , 28F
09/17 13:05, 28F
→
09/17 13:07, , 29F
09/17 13:07, 29F
→
09/17 13:08, , 30F
09/17 13:08, 30F
→
09/17 13:10, , 31F
09/17 13:10, 31F
推
09/17 13:10, , 32F
09/17 13:10, 32F
→
09/17 13:11, , 33F
09/17 13:11, 33F
→
09/17 13:11, , 34F
09/17 13:11, 34F
→
09/17 13:16, , 35F
09/17 13:16, 35F
→
09/17 13:17, , 36F
09/17 13:17, 36F
推
09/17 13:18, , 37F
09/17 13:18, 37F
→
09/17 13:18, , 38F
09/17 13:18, 38F
→
09/17 13:19, , 39F
09/17 13:19, 39F
→
09/17 13:19, , 40F
09/17 13:19, 40F
推
09/17 13:19, , 41F
09/17 13:19, 41F
推
09/17 13:21, , 42F
09/17 13:21, 42F
→
09/17 13:21, , 43F
09/17 13:21, 43F
推
09/17 13:22, , 44F
09/17 13:22, 44F
→
09/17 13:23, , 45F
09/17 13:23, 45F
→
09/17 13:23, , 46F
09/17 13:23, 46F
推
09/17 13:24, , 47F
09/17 13:24, 47F
→
09/17 13:24, , 48F
09/17 13:24, 48F
→
09/17 13:26, , 49F
09/17 13:26, 49F
→
09/17 13:26, , 50F
09/17 13:26, 50F
推
09/17 13:31, , 51F
09/17 13:31, 51F
→
09/17 13:32, , 52F
09/17 13:32, 52F
推
09/17 13:32, , 53F
09/17 13:32, 53F
推
09/17 13:33, , 54F
09/17 13:33, 54F
→
09/17 13:33, , 55F
09/17 13:33, 55F
→
09/17 13:34, , 56F
09/17 13:34, 56F
推
09/17 13:35, , 57F
09/17 13:35, 57F
→
09/17 13:36, , 58F
09/17 13:36, 58F
→
09/17 13:37, , 59F
09/17 13:37, 59F
→
09/17 13:37, , 60F
09/17 13:37, 60F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 7 篇):