设置输入文本组件以显示两位小数为3.0的数字

时间:2013-07-29 00:23:50

标签: actionscript-3

我正在尝试在FLASH AS 3.0中构建应用程序以快速计算发票。我已经做了大部分但现在我不能让它只显示两位小数而不是大小数的数字。

到目前为止,这是我的代码:

import fl.managers.StyleManager; 

this.stop();

var Format1:TextFormat = new TextFormat();
Format1.size = 17;
Format1.font = "Arial Rounded MT Bold";
Format1.align = "right";
StyleManager.setComponentStyle(TextInput, "textFormat", Format1);

borrar.addEventListener(MouseEvent.CLICK, escuchadorLimpiar);
function escuchadorLimpiar(event) {

a1.text="";
a2.text="";
a3.text="";
a4.text="";
b1.text="";
b2.text="";
b3.text="";
b4.text="";
c1.text="";
c2.text="";
c3.text="";
c4.text="";
subtotal.text="";
iva.text="";
total.text="";
}
a1.restrict="0-9";
a2.restrict="0-9";
a3.restrict="0-9";
a4.restrict="0-9";
b1.restrict="0-9";
b2.restrict="0-9";
b3.restrict="0-9";
b4.restrict="0-9";
c1.restrict="0-9";
c2.restrict="0-9";
c3.restrict="0-9";
c4.restrict="0-9";
subtotal.restrict="0-9";
iva.restrict="0-9";
total.restrict="0-9";

 calcular.addEventListener(MouseEvent.CLICK, onSumar1, false, 0, true);
 function onSumar1(evt:MouseEvent):void
 {
 c1.text = String(Number(a1.text) * Number(b1.text) / Number(escalar.text));
 c2.text = String(Number(a2.text) * Number(b2.text) / Number(escalar.text));
 c3.text = String(Number(a3.text) * Number(b3.text) / Number(escalar.text));
 c4.text = String(Number(a4.text) * Number(b4.text) / Number(escalar.text));
 subtotal.text = String(Number(c1.text) + Number(c2.text) + Number(c3.text) +          Number(c4.text));
 iva.text = String(Number(total.text) - (Number(subtotal.text)));
 total.text = String(Number(subtotal.text) * Number(escalar.text));
 }

我有一个不可见的输入文本,其中包含一个名为escalar的常数(1.12)。

有任何帮助吗?

1 个答案:

答案 0 :(得分:3)

您可以使用toFixed()

var number:Number = 1/3;
trace(number.toFixed(2));

有了这个说,如果你正在处理钱,你需要注意浮点不准确,数字可能不是你所期望的。使用整数表示美元和分数或使用某种类型的库可能更好。