作者cjcat2266 (CJ Cat)
看板Flash
标题Re: 0开头的数字除法会算错 @@"
时间Wed Oct 3 20:00:39 2007
※ 引述《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)