我们使用的是版本3.6。我们称舍入函数来清理小数部分。像这样......
private function ceilingRounding(value:Number, power:Number):Number
{
var scale:Number = Math.pow(10, power);
return (Math.ceil(value * scale) / scale);
}
以下值的函数结果是意外的: 值= 76.7549,比例= 10000。 结果应该是76.7549,但我们得到76.7550
使用调试器,我们看到该值* scale = 767549.0000000001。当然这会被四舍五入到76.7550,但为什么我们得到.0000000001以及我们如何解决这个问题?
答案 0 :(得分:0)
“NUMBERS”值保持此近似操作,您可以修改您的函数并将以下内容添加到操作中,另外我让我经常使用的函数进行舍入。
public static function roundToPrecision(numberVal:Number, precision:int = 0):Number
{
var decimalPlaces:Number = Math.pow(10, precision);
return Math.round(decimalPlaces * numberVal) / decimalPlaces;
}
如果您需要固定十进制数,请尝试
var myNum:Number = 1.123556789
myNum.toFixed(3);
trace(myNum); // 1.123
如果您需要精确十进制数,请尝试
myNum.toPrecision(3);
trace(myNum); // 1.124;
有关更多选项,请参阅链接中的四舍五入。