本文主要是介绍Flex中对表格中某列的值进行数字格式化并求百分比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、问题背景
一般的,需要对表格中某列的数值进行格式化,对该数值乘以100,并保留两位小数,添加“%”
2、实现实例
- <?xml version="1.0" encoding="utf-8"?>
- <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/mx"
- width="100%" height="100%" fontSize="12"
- fontFamily="微软雅黑">
- <s:layout>
- <s:BasicLayout/>
- </s:layout>
- <fx:Script>
- <![CDATA[
- import mx.collections.ArrayCollection;
- import mx.events.FlexEvent;
- [Bindable]
- //表格数据绑定
- private var gridArray:ArrayCollection = new ArrayCollection([
- {week:"星期一",apple:"3676",rate:"0.7868"},
- {week:"星期二",apple:"4534",rate:"0.65454"},
- {week:"星期三",apple:"6758",rate:"0.876454"},
- {week:"星期四",apple:"9808",rate:"0.34224"},
- {week:"星期五",apple:"6567",rate:"0.9876523"},
- {week:"星期六",apple:"9000",rate:"0.566777"},
- {week:"星期日",apple:"4533",rate:"0.988787"}
- ]);
- /**
- * 对表格中的比率进行格式化
- */
- private function formatDataGrid(item:Object,column:DataGridColumn):String
- {
- var tempData:Number = item.rate*100;
- var data:String = dataFormatter.format(tempData);
- return data+"%";
- }
- ]]>
- </fx:Script>
- <fx:Declarations>
- <!--格式化数字-->
- <mx:NumberFormatter id="dataFormatter" precision="2" rounding="up"/>
- </fx:Declarations>
- <mx:VBox width="100%" height="100%" paddingBottom="10" paddingLeft="10" paddingRight="20"
- paddingTop="10" horizontalAlign="center">
- <mx:DataGrid id="dataGrid" width="100%" height="90%" dataProvider="{gridArray}" textAlign="center">
- <mx:columns>
- <mx:DataGridColumn headerText="星期" dataField="week"/>
- <mx:DataGridColumn headerText="苹果" dataField="apple"/>
- <mx:DataGridColumn headerText="比率" dataField="rate" labelFunction="formatDataGrid"/>
- </mx:columns>
- </mx:DataGrid>
- </mx:VBox>
- </s:Application>
(1)将小数乘以100
var tempData:Number = item.rate*100;
(2)对数值格式化,保留两位小数
var data:String = dataFormatter.format(tempData);
(3)添加百分号
return data+"%";
3、实现结果
这篇关于Flex中对表格中某列的值进行数字格式化并求百分比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!