关于Flex里面数据类型转换的一个问题
AS3.0中,FLEX的定义里有固有函数Number(expression:object):String,但是当将一个string型的字符串进行转换的时候,如果该字符串有...
AS3.0中,FLEX的定义里有固有函数Number(expression:object):String,但是当将一个string型的字符串进行转换的时候,如果该字符串有逗号,如“15,000.00”,那么就会返回NaN的值,这是因为逗号在FLEX侧的编译时存在差异的原因,但是如果利用固有函数parseFloat(str:String):Number的话,就会在逗号前面截住,返回值是“15”,那么,问题:我该采取何种方法才能让返回值变成Number型的“15,000.00”?
展开
3个回答
展开全部
写个方法
private function returnNum(value:string):Number
{
return Number(value.split(",").join("").split(".").join(""))
}
然后调用这个方法
例如你裂盯衫的字符串是str
returnNum(str)
提示:这样转出来的肆腔是全部的字符,我则岩不知道你那个.后面的要不要。不要的话,这段就不要了.split(".").join("")
private function returnNum(value:string):Number
{
return Number(value.split(",").join("").split(".").join(""))
}
然后调用这个方法
例如你裂盯衫的字符串是str
returnNum(str)
提示:这样转出来的肆腔是全部的字符,我则岩不知道你那个.后面的要不要。不要的话,这段就不要了.split(".").join("")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以换个思路,先用字符串的replace方法把“逗号”去掉汪消,在用parseFloat(str:String):Number转换烂模试饥陵缓试看呢。
更多追问追答
追问
试验成功……泪奔,对函数的了解果然还差的远啊……
那么问下,Datagrid里面排序的时候,如果该列的数据是String型,我如何能让他变成按照Number型排列?
追答
flex中Datagrid控件有排序功能。你可以找找。或者用个简单的方法,dataProvider数据源不是list吗。。可以先把list排好顺序在放到Datagrid中。希望对你有帮助。
求最佳回答。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
逗号迅拆手亩嫌去掉不就好了吗?
Number(expression.replace("御敬'",""))
Number(expression.replace("御敬'",""))
追问
叹气,我果然对FLEX的固有函数各种不熟悉啊……
但是……另外一个问题出来了,我将它转成Number后是一个整数,小数后面都没有了,这个时侯要将它再度format化的话,Flex里面是否有固有函数可以实现这一点?似乎NumberFormatter里面的format返回值是String ,那样的话就没有意义了……
或者可以问下,Datagrid里面排序的时候,如果该列的数据是String型,我如何能让他变成按照Number型排列?
追答
刚下班,你的问题那不用转换了,要把String当作Number来比较是吧。GridColumn有一个sortCompareFunction属性,可以自定义排序方法。如下:在需要比较的列中。
然后
= parseFloat(obj1[gc.dataField].toString().replace("'","")))?1:-1;
}
]]>
希望对你有帮助。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询