我正在查看一些闪存代码,该代码从数组中调用一个值,索引为包含小数点的“数字”数据类型。
该数组的长度为100个索引,并且在循环中使用一个变化的变量来调用一个值,该值在某一时刻为5.3。 Flash如何处理?它是对价值的底限,上限还是四舍五入?没有异常被抛出。我正在将代码转换为C#,所以我需要知道如何处理它。
var _loc8_:int = 0;
var _loc2_:String = param1.toString();
var _loc3_:int = _loc2_.length;
var _loc4_:int = 10;
var _loc5_:Number = 1;
var _loc6_:String = "";
var _loc7_:int = 0;
while(_loc7_ < _loc3_)
{
_loc8_ = param1 % _loc4_;
_loc8_ = _loc8_ * _loc5_;
_loc6_ = _loc6_ + this.scoreArray[_loc8_];
_loc4_ = _loc4_ * 10;
_loc5_ = _loc5_ * 0.1;
_loc7_++;
}
程序在Flash状态下运行良好,但是我无法在C#中正确编译它。
谢谢!
答案 0 :(得分:0)
“在某个点处正在调用一个值……是5.3。Flash如何处理此值?它是对值进行下限,上限还是四舍五入?不会引发异常。我正在转换代码到C#”
AS3的Number数据类型为“表示IEEE-754双精度浮点数的数据类型” 。
您可能想使用C#Double
处理Flash / AS3中的小数。
AS3:
var myNum :Number = 5.3;
在C#中,其中之一将起作用...
float myFloat = 5.3f; //# 32-bit floating-point val... Has "f" suffix
double myDouble = 5.3d; //# 64-bit floating-point val... Has "d" suffix