作者op907 (op)
看板Flash
标题[问题] 用按钮输出数字
时间Thu Apr 23 13:45:40 2009
我先在舞台上设三个按钮分别是 数字1 数字2 小数点
我想用滑鼠按下数字1按钮後动态栏位出现 1
再按下2後 则出现 12
再按下2後 则出现 122
再按下小数点再按下1 则出现122.1
再按下2 则出现122.12
这是我的写法
var a:Number;
var s:Number=0;
var d:Number=0;
var t:Number=0;
var n:Number=1;
function one(e:MouseEvent):void{
d=1;
if(t==0){
s=10*s+d;
out_txt.text=String(s);}
if(t==1){
a=d*Math.pow(0.1,n);
n=n+1;
s=s+a;
out_txt.text=String(s);}
}
function two(e:MouseEvent):void{
d=2;
if(t==0){
s=10*s+d;
out_txt.text=String(s);}
if(t==1){
a=d*Math.pow(0.1,n);
n=n+1;
s=s+a;
out_txt.text=String(s);}
}
function point(e:MouseEvent):void{
t=1;}
one_btn.addEventListener(MouseEvent.CLICK, one);
two_btn.addEventListener(MouseEvent.CLICK, two);
point_btn.addEventListener(MouseEvent.CLICK, point);
这个写法到小数点第二位就错了
请问要怎修改
或是有其他写法
然後 Math.pow(0.1,3) 为什麽出来的值都怪怪的
整数都没问题 像 Math.pow(10,3)就没问题
我是用AS3写的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.170.124.172
1F:推 cjcat2266:Math.pow(0.1, 3)你得到什麽值? 04/23 13:49
2F:→ cjcat2266:小数第二位就错的意思是? 04/23 13:49
3F:→ op907:Math.pow(0.1,3)=0.0010000000000000002 04/23 13:53
4F:→ op907:会变成122.1199999999大概是这样 而我小数点第二位是输入2 04/23 13:56
5F:推 cjcat2266:恩,浮点数运算并不是100%准确的,小误差是很正常的 04/23 13:58
6F:→ cjcat2266:这种时候可以自己做一些四舍五入到小数第十位之类的处理 04/23 13:58
7F:→ op907:不能按下什麽就是什麽吗 04/23 14:00
8F:→ op907:我写的这个程式应该是错了 很奇怪 04/23 14:03
9F:推 pm2001:如果你是要写计算机的话,做加减乘除前都当成字串来运算 04/23 14:06
10F:推 Angelliya:推楼上:) 04/23 14:39
11F:推 Allensph:先用字串相加 要运算时再转数字 04/23 15:10
12F:→ op907:请问字串怎麽相加 04/23 15:47
13F:推 cjcat2266:所谓相加就是 "1" + "2" + "." + "1" == "12.1" 04/23 16:26
14F:→ cjcat2266: *字串的 04/23 16:26