skip to main |skip to sidebar

2008年1月3日

[AS3]比较两个浮点小数

/**
* 在考虑计算误差的情况下,判断两个浮点小数是否相等。
*
* @param a 一个浮点小数。
* @param b 另一个浮点小数。
* @param tol 允许的最大浮点小数的计算误差。
* @return 如果相等,返回 true;否则返回 false。
*/

public static function eqFloat(a:Number, b:Number,
tol:Number = 1e-12):Boolean
{
return Math.abs(a - b) < tol;
}


/**
* 在考虑计算误差的情况下,判断两个浮点小数的大小。
*
* @param a 一个浮点小数。
* @param b 另一个浮点小数。
* @param tol 允许的最大浮点小数的计算误差。
* @return 如果相等,返回 0;ab,返回 1。
*/

public static function compareFloat(a:Number, b:Number, 
tol:Number = 1e-12):int
{
return eqFloat(a, b, tol) ? 0 :
a < b ? -1 :
1;
}

本文链接:http://assnippets.blogspot.com/2008/01/as3.html转载请注明出处。

相关文章:

0评论: