Flex中对表格中某列的值进行数字格式化并求百分比

本文介绍了一种使用Flex对表格中的数值进行格式化的具体方法。该方法通过将数值乘以100,保留两位小数并添加百分比符号来显示比率。通过实例展示了如何在DataGrid中应用自定义格式化函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、问题背景

     一般的,需要对表格中某列的数值进行格式化,对该数值乘以100,并保留两位小数,添加“%”


2、实现实例

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"   
  3.                xmlns:s="library://ns.adobe.com/flex/spark"   
  4.                xmlns:mx="library://ns.adobe.com/flex/mx"  
  5.                width="100%" height="100%" fontSize="12"  
  6.                fontFamily="微软雅黑">  
  7.     <s:layout>  
  8.         <s:BasicLayout/>  
  9.     </s:layout>  
  10.     <fx:Script>  
  11.         <![CDATA[  
  12.             import mx.collections.ArrayCollection;  
  13.             import mx.events.FlexEvent;  
  14.   
  15.             [Bindable]  
  16.             //表格数据绑定  
  17.             private var gridArray:ArrayCollection = new ArrayCollection([  
  18.                 {week:"星期一",apple:"3676",rate:"0.7868"},  
  19.                 {week:"星期二",apple:"4534",rate:"0.65454"},  
  20.                 {week:"星期三",apple:"6758",rate:"0.876454"},  
  21.                 {week:"星期四",apple:"9808",rate:"0.34224"},  
  22.                 {week:"星期五",apple:"6567",rate:"0.9876523"},  
  23.                 {week:"星期六",apple:"9000",rate:"0.566777"},  
  24.                 {week:"星期日",apple:"4533",rate:"0.988787"}  
  25.             ]);  
  26.               
  27.             /**  
  28.              * 对表格中的比率进行格式化  
  29.              */  
  30.             private function formatDataGrid(item:Object,column:DataGridColumn):String  
  31.             {  
  32.                 var tempData:Number = item.rate*100;  
  33.                 var data:String = dataFormatter.format(tempData);  
  34.                 return data+"%";  
  35.             }  
  36.               
  37.         ]]>  
  38.     </fx:Script>  
  39.     <fx:Declarations>  
  40.         <!--格式化数字-->  
  41.         <mx:NumberFormatter id="dataFormatter" precision="2" rounding="up"/>  
  42.     </fx:Declarations>  
  43.       
  44.     <mx:VBox width="100%" height="100%" paddingBottom="10" paddingLeft="10" paddingRight="20"  
  45.              paddingTop="10" horizontalAlign="center">  
  46.         <mx:DataGrid id="dataGrid" width="100%" height="90%" dataProvider="{gridArray}" textAlign="center">  
  47.             <mx:columns>  
  48.                 <mx:DataGridColumn headerText="星期" dataField="week"/>  
  49.                 <mx:DataGridColumn headerText="苹果" dataField="apple"/>  
  50.                 <mx:DataGridColumn headerText="比率" dataField="rate" labelFunction="formatDataGrid"/>  
  51.             </mx:columns>  
  52.         </mx:DataGrid>  
  53.           
  54.     </mx:VBox>  
  55. </s:Application>  

(1)将小数乘以100

       var tempData:Number = item.rate*100;


(2)对数值格式化,保留两位小数

       var data:String = dataFormatter.format(tempData);


(3)添加百分号

       return data+"%";


3、实现结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值