2012-10-05 40 views
1

我正在尝试计算BMI并为该数字设置标签,但它始终返回“NaN”而不是数字。Flash Builder将数字转换为字符串

全码:

<?xml version="1.0" encoding="utf-8"?> 
    <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" title="BMI Calculator"> 

<fx:Script> 
    <![CDATA[ 
     public var weightnum:Number; 
     public var heightnum:Number; 
     public var resultvar:Number; 
     protected function button1_clickHandler():void 
     { 
      weightnum = Number(weightvar); 
      heightnum = Number(heightvar); 
      resultvar = weightnum * 4.4/(heightnum * heightnum); 
      resultstr.text = resultvar.toString(); 
     } 
    ]]> 
</fx:Script> 

<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 
<s:Label left="30" top="30" text="Your Weight (lbs)"/> 
<s:TextInput id="weightvar" restrict="0-9" x="30" y="53" width="80%"/> 
<s:Label x="30" y="104" text="Your Height (feet)"/> 
<s:TextInput id="heightvar" restrict="0-9" x="30" y="127" width="80%"/> 
<s:Button x="30" y="202" label="Calculate" click="button1_clickHandler()"/> 
<s:Label id="resultstr" x="30" y="253" text="" /> 

回答

0

你试图将TextInput的转换为数值( Number(weightvar);)。 这显然不会工作。

你需要做的是将TextInputtext财产转换为数值,就像这样:

weightnum = Number(weightvar.text); 
+0

啊,做到了!非常感谢! –

0

代替字符串铸造()使用number.toString()

+0

没有雪茄,仍然得到NaN的,如果我做resultstr.text = resultvar.toString() ; –