Re: 0開頭的數字除法會算錯 @@"
※ 引述《goodray (ray)》之銘言:
: 像是
: trace(0345/1000);
: 答案竟然是0.229...
: 請問為什麼會這樣,因為我是讓使用者用textfield輸入值
: 很有可能輸入0開頭的數字,那該怎麼處理呢?謝謝!
剛剛有點無聊去翻舊文 XD
這篇是389篇,兩年前了...
Flash有兩個global function可以把String轉換成Number
轉換整數用parseInt(string, radix)
轉換小數用parseFloat(string)
其中parseInt可以指定radix,也就是轉換用的底數
在Flash裡面的數字表達方式有以下幾種
1.十進位 - 一般數字輸入就是十進位
2.十六進位 - "0x"開頭的字串,如果沒有指定radix的話
後面接的數字將會被解讀為十六進位
3.八進位 - 這個比較容易被忽略,"0"開頭的字串,在使用parseInt的時候
如果沒有指定radix,radix會被自動設為8
4.科學記號 - 如同工程計算機的輸入,"123e-2"會被parseFloat解讀為1.23
※parseInt有辦法解讀1, 2, 3
parseFloat則可以解讀1, 4
為了不要讓奇奇怪怪的輸入字串搞混
建議在使用parseInt的時候,如果是要解讀十進位
都要明確指定radix = 10
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Gallery http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.74.207
※ 編輯: cjcat2266 來自: 61.228.74.207 (10/03 20:01)
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章