J'essaie de créer une calculatrice de paiement minimum et j'ai un problème avec le paiement minimum ne pouvant pas calculer en fonction de la valeur mensuelle actuelle. Ce que je pense devrait fonctionner ... verrouille le navigateur. J'ai commenté la ligne qui me pose un problème dans le code ci-dessous. J'apprécierais que quelqu'un puisse donner un coup de main.impossible de recalculer une valeur basée sur la valeur actuelle diminuée
<?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"
minWidth="1296" minHeight="768"
width="100%" height="408"
backgroundColor="#B9ADFF" >
<fx:Declarations>
<mx:CurrencyFormatter
id="Price" precision="2"
rounding="nearest"
decimalSeparatorTo="."
thousandsSeparatorTo=","
useThousandsSeparator="false"
useNegativeSign="true"
currencySymbol="$"
alignSymbol="left"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var myDataProvider:ArrayCollection = new ArrayCollection();
protected function clickHandler(event:MouseEvent):void {
myDataProvider.removeAll();
//Creditor Constants
var c:Number = Number(1); //start counting at
var b1:Number = Number(bal1.text); //initial balance
var r1:Number = Number(apr.text)/100/12;//convert apr to decimal
var m1:Number = Number(mpp.text)/100; //convert mpp to decimal
var mpp:Number = Number(b1 * m1); //minimum payment by percentage
var ipd:Number = Number(b1 * r1); //interest paid
var ppd:Number = Number(mpp - ipd); //principle paid
while(b1 >= 0) {
myDataProvider.addItem({
"months" : c,
"intBal" : Price.format(b1), //balance
"pPaid" : Price.format(ppd), //principle paid
"intPd" : Price.format(ipd), //interest paid
"minmopmt" : Price.format(mpp) //minimum payment
});
c = (c + 1); //count rows
b1 -= (ppd); // Balance minus Principle Paid
///////// THE PROBLEM LINE IS BELOW /////////////
//mpp = (b1 * m1); //minimum payment by percentage
ipd = (b1 * r1); //Interest Paid
ppd = (mpp - ipd); // Principle Paid
}
}
]]>
</fx:Script>
<s:Button label="Calculate" x="26" y="238"
click="clickHandler(event)" />
<s:TextInput x="22" y="277" id="bal1" restrict="[0-9.\-]" textAlign="right" text="1500"/>
<s:Label x="158" y="287" text="Initial Balance
"/>
<s:TextInput x="22" y="307" id="apr" restrict="[0-9.\-]" textAlign="right" text="15"/>
<s:Label x="158" y="317" text="Annual Percentage Rate (APR)"/>
<s:TextInput x="22" y="337" id="mpp" restrict="[0-9.\-]" textAlign="right" text="2"/>
<s:Label x="158" y="347" text="Minimum Payment Percentage"/>
<mx:DataGrid dataProvider="{myDataProvider}" y="10" id="dg" height="184" x="22">
<mx:columns>
<mx:DataGridColumn dataField="months" headerText="Mo" width="30"/>
<mx:DataGridColumn dataField="intBal" headerText="Balance" width="120"/>
<mx:DataGridColumn dataField="pPaid" headerText="Principle Paid" width="120"/>
<mx:DataGridColumn dataField="intPd" headerText="Interest Paid" width="120"/>
<mx:DataGridColumn dataField="minmopmt" headerText="Min Monthly Pmt" width="120"/>
</mx:columns>
</mx:DataGrid>
</s:Application>