Actionscript 3 Flash Builder 4.6 | mx:DataGrid |小数到小数…或小数到小数格式

Actionscript 3 Flash Builder 4.6 | mx:DataGrid |小数到小数…或小数到小数格式,actionscript-3,apache-flex,datagrid,flash-builder,fractions,Actionscript 3,Apache Flex,Datagrid,Flash Builder,Fractions,我的datagrid有一个显示分数的深度维度列(例如使用的一个维度是24 3/8)。我可以选择文本(分数或小数),但基本上我需要能够从24 3/8到24.375来回转换 为什么需要十进制格式: 我有用于过滤深度维度列的复选框,因此我需要该逻辑的十进制形式(例如,复选框用于查看20到26之间的过滤深度维度) 为什么需要分数格式:我需要分数格式,因为深度维度数据将在应用程序的另一部分中作为字符串引用。在dataGrid中使用此格式时,筛选器不起作用,因为它无法将24 3/8识别为数字/int 所以基

我的datagrid有一个显示分数的深度维度列(例如使用的一个维度是24 3/8)。我可以选择文本(分数或小数),但基本上我需要能够从24 3/824.375来回转换

为什么需要十进制格式: 我有用于过滤深度维度列的复选框,因此我需要该逻辑的十进制形式(例如,复选框用于查看20到26之间的过滤深度维度)

为什么需要分数格式:我需要分数格式,因为深度维度数据将在应用程序的另一部分中作为字符串引用。在dataGrid中使用此格式时,筛选器不起作用,因为它无法将24 3/8识别为数字/int

所以基本上我在寻找一种在两种格式之间转换的方法,24 3/8到24.37524.375到24 3/8

再次,我为这一混乱道歉——如果需要,我可以重新编辑和/或添加更多细节

提前谢谢

--教育部

为什么需要分数格式:我需要分数格式 因为深度标注数据将在中作为字符串引用 应用程序的另一部分

你需要分数格式的理由似乎很奇怪。您是否了解可以通过强制转换在
字符串
中使用
数字
数据类型

        var decimalNum:Number = 3.14;

        //concatenating a Number with a String automatically casts it
        var autoCastString:String = "I want to eat some " + decimalNum;
        trace(autoCastString);

        // cast as String type
        var decimalString:String = String(decimalNum);

        trace("Mmmm! I like", decimalString);
输出:

I want to eat some 3.14
Mmmm! I like 3.14
但也许你还有其他原因。以下代码来自此链接:。我还没有测试过

package com.lookmum.util
{
    public class Fraction
    {
        private static var it         :Number = 0;
        public static var iterationLimit:Number = 10000;
        public static var accuracy    :Number = 0.00001;

        public function Fraction()
        {

        }

        private static  function resetIt():void
        {
            it = 0;
        }

        private static  function addIt():Boolean
        {
            it++;
            if (it == iterationLimit)
            {
                trace('error : too many iterations');
                return true;
            }
            else
            {
                return false;
            }
        }

        public function getFractionString(num:Number):String
        {
            var fracString:String;
            var fracArray:Array = getFraction(num);
            switch (fracArray.length)
            {
                case 1 :
                    fracString = num.toString();
                    break;
                case 2 :
                    fracString = fracArray[0].toString() + '/' + fracArray[1].toString();
                    break;
                case 3 :
                    fracString = fracArray[0].toString() + ' ' + fracArray[1].toString() + '/' + fracArray[2].toString();
                    break;
            }
            return fracString;
        }

        public function getFraction(num:Number):Array
        {
            var fracArray:Array = new Array();
            var hasWhole:Boolean = false;
            if (num >= 1)
            {
                hasWhole = true;
                fracArray.push(Math.floor(num));
            }
            if (num - Math.floor(num) == 0)
            {
                return fracArray;
            }
            if (hasWhole)
            {
                num = num - Math.floor(num);
            }
            var a:Number = num - int(num);
            var p:Number = 0;
            var q:Number = a;

            resetIt();

            while (Math.abs(q - Math.round(q)) > accuracy)
            {
                addIt();
                p++;
                q = p / a;
            }
            fracArray.push(Math.round(q * num));
            fracArray.push(Math.round(q));
            return fracArray;
        }
    }
}

那没有任何意义,分数和小数在数学中是一样的。如果你不是在谈论数学,那么就说出来,然后编辑问题。很抱歉造成混淆-我已经更新了一点问题,这有帮助吗?这仍然需要翻译来表达任何意思。在简单的英语中,“datagrid有维度”是指无法格式化的组件的宽度和高度。另一方面,这个“datagrid有一个名为“dimensions”的字段,其中的文本显示十进制或分数”。重写整件事,让它意味着其他人可以理解。谢谢你!我一开始就告诉你!