Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 스케일폼
- addChild
- 집합의 연산
- 태그클라우드
- Document Class
- MMOKit
- 강좌
- scaleform3
- autodesk
- as3
- 플래시
- DataBinding
- scaleform4
- as3.0
- flash player 10
- watch
- 애드온
- 샌프란시스코
- 형변환
- KGC 2013
- scaleform
- flash cs3
- flash
- Chart
- ApplicationDomain
- GDC
- CLIK
- as2
- 수학정석
- 클릭
Archives
- Today
- Total
scaleform.minarto.com
소숫점 곱셈 버그 본문
뭐 생각해보면 당연한거긴 하지만 덧셈에 있던 소숫점 계산 버그는 곱셈에서도 나타나기 시작했다
trace(0.075 * 3)
////////////////////////
0.22499999999999998
뭐 곱셈이란게 덧셈의 연속이니 말이다.
결국 요즘에 정말 쓸 데없는 두 클래스를 만들어서 사용하고 있다.
어도비...정말 나를 귀찮게 하고 있다
trace(0.075 * 3)
////////////////////////
0.22499999999999998
뭐 곱셈이란게 덧셈의 연속이니 말이다.
결국 요즘에 정말 쓸 데없는 두 클래스를 만들어서 사용하고 있다.
public class CommaAdd
{
public static function add(num0:Number, num1:Number):Number
{
if(Math.round(num0) != num0 || Math.round(num1) != num1)
{
var commaCnt0:uint = (String(num0).split(".").length == 2) ? String(num0).split(".")[1].length : 0;
var commaCnt1:uint = (String(num1).split(".").length == 2) ? String(num1).split(".")[1].length : 0;
var commaCnt:uint = (commaCnt0 >= commaCnt1) ? commaCnt0 : commaCnt1;
var sum:Number = (num0 * Math.pow(10, commaCnt) + num1 * Math.pow(10, commaCnt)) / Math.pow(10, commaCnt);
}
else
{
sum = num0 + num1;
}
return sum;
}
}
{
public static function add(num0:Number, num1:Number):Number
{
if(Math.round(num0) != num0 || Math.round(num1) != num1)
{
var commaCnt0:uint = (String(num0).split(".").length == 2) ? String(num0).split(".")[1].length : 0;
var commaCnt1:uint = (String(num1).split(".").length == 2) ? String(num1).split(".")[1].length : 0;
var commaCnt:uint = (commaCnt0 >= commaCnt1) ? commaCnt0 : commaCnt1;
var sum:Number = (num0 * Math.pow(10, commaCnt) + num1 * Math.pow(10, commaCnt)) / Math.pow(10, commaCnt);
}
else
{
sum = num0 + num1;
}
return sum;
}
}
public class CommaMultiplication
{
public static function cal(num0:Number, num1:Number):Number
{
if(Math.round(num0) != num0 || Math.round(num1) != num1)
{
var commaCnt0:uint = (String(num0).split(".").length == 2) ? String(num0).split(".")[1].length : 0;
var commaCnt1:uint = (String(num1).split(".").length == 2) ? String(num1).split(".")[1].length : 0;
var commaCnt:uint = (commaCnt0 >= commaCnt1) ? commaCnt0 : commaCnt1;
var sum:Number = (num0 * Math.pow(10, commaCnt) * num1 * Math.pow(10, commaCnt)) / Math.pow(10, commaCnt) / Math.pow(10, commaCnt);
}
else
{
sum = num0 * num1;
}
return sum;
}
}
{
public static function cal(num0:Number, num1:Number):Number
{
if(Math.round(num0) != num0 || Math.round(num1) != num1)
{
var commaCnt0:uint = (String(num0).split(".").length == 2) ? String(num0).split(".")[1].length : 0;
var commaCnt1:uint = (String(num1).split(".").length == 2) ? String(num1).split(".")[1].length : 0;
var commaCnt:uint = (commaCnt0 >= commaCnt1) ? commaCnt0 : commaCnt1;
var sum:Number = (num0 * Math.pow(10, commaCnt) * num1 * Math.pow(10, commaCnt)) / Math.pow(10, commaCnt) / Math.pow(10, commaCnt);
}
else
{
sum = num0 * num1;
}
return sum;
}
}
어도비...정말 나를 귀찮게 하고 있다