テキスト フィールドを小数点以下 2 桁に丸める必要があります。これが、私が設定した警告メッセージを含むコードです。私の懸念は、3 つ目以降の数字を追加すると問題が発生することです。例は 100 + 10.11 = 110.11,(result = ) then 110.11 + 10.11 = 120.22 ですが、3 番目の数値 120.22 + 10.11 を追加すると、130.32999999999998 になり、130.33 と等しくしたいのですが、追加された 3 番目の数値でおかしくなるのは「結果」フィールドは 130.32999999999998 に等しい
tbar: [{
text: 'Add',
tooltip:'Add the line item',
handler : function(){
var r = new iLineItemRec({
i_line_item_name: '',
i_line_item_amt: ''
});
iLineItemGrid.stopEditing();
iLineItemStore.insert(0, r);
iLineItemGrid.startEditing(0, 0);
Ext.getCmp('mike').setDisabled(false);
},
//Should this be scope:this or scope:iLineItemGrid?
scope:this
},
{
text: 'Delete',
tooltip:'Remove the selected line item',
handler: function(){
iLineItemGrid.stopEditing();
var r = iLineItemGrid.getSelectionModel().getSelectedCell();
iLineItemStore.removeAt(r[0]);
},
//Should this be scope:this or scope:iLineItemGrid?
scope:this
},
{
xtype: 'tbfill'
},
{
id: 'mike',
text: 'Submit',
tooltip:'Submit the line item',
//new
//disabled: true,
handler: function(){
iLineItemGrid.stopEditing();
// Will this code save changes to the database?
//iLineItemGrid.getStore().commitChanges();
iLineItemStore.commitChanges();
var iAmountTotalForLineItems = 0;
var iAmountInDueField = Ext.getCmp('iAmountDue').value;
var tempTotal = 0;
var result = 0;
iLineItemStore.each(function(addAmount){
iAmountTotalForLineItems += addAmount.get('i_line_item_amt');
});
alert('1 iAmountInDueField: ' + iAmountInDueField +' iLineItemTotalHold: '+iLineItemTotalHold + ' iAmountTotalForLineItems: '+ iAmountTotalForLineItems);
if (iLineItemTotalHold > iAmountTotalForLineItems ){
alert ('if');
tempTotal = iLineItemTotalHold - iAmountTotalForLineItems;
result = iAmountInDueField - tempTotal;
alert('two: '+result+' = '+iAmountInDueField+' - '+tempTotal );
}
else if (iLineItemTotalHold < iAmountTotalForLineItems ){
alert ('if2');
tempTotal = iAmountTotalForLineItems - iLineItemTotalHold;
result = iAmountInDueField + tempTotal;
alert('3: '+result+' = '+iAmountInDueField+' + '+tempTotal );
}
iLineItemTotalHold = iAmountTotalForLineItems;
Ext.getCmp('iAmountDue').setValue(result);
this.setDisabled(true);
}
//scope:this
}
]
var iLineItemTotalHold = 0;