在我的表单中,我有四个需要计算的字段,结果显示在最后一个名为 PaymentAmount 的字段中。建议我为 PaymentAmount 使用自定义转换器,因为我只需要在 PaymentAmount 上进行部分刷新,以便在其他四个字段上的 onchange 事件。
这很好用,但我的问题是结果格式错误。
我的代码如下所示:
获取对象()
try {
var transCode = getComponent("TransactionCode").getValue();
var nominal = getComponent("Nominal").getValue();
var price = getComponent("Price").getValue();
var qFactor = getComponent("QuoteFactor").getValue()||1;
var fee1= getComponent("Fee1").getValue()||0;
var fee2= getComponent("Fee2").getValue()||0;
var fee3= getComponent("Fee3").getValue()||0;
var feeTotal = fee1+fee2+fee3;
var paymentAmount = nominal * (price * qFactor);
if(transCode == "Buy") {
paymentAmount+=feeTotal;
} else if(transCode == "Sell") {
paymentAmount -= feeTotal;
} else return 0;
return paymentAmount;
} catch(e){
dBar.error(e);
}
getAsString()
return value.toString();
我尝试使用 java 中所有可用的方法和对象来格式化结果,例如: String.format("%.2f", value); 但失败了。
如果我根据我的语言环境输入我的值 10000*1,44+1,2 = 14401,2 但在 PaymentAmount 中显示的结果是 14401.2。我希望它根据我的语言环境 14001,2 显示。
例如,如果我在 getAsString() 中使用以下内容,则会收到此错误:
try {
var val = java.lang.String.format("%.2f",value);
} catch(e) { dBar.error(e); }
com.ibm.jscript.InterpretException: Script interpreter error, line=2, col=28: Java method 'format(string, number)' on java class 'java.lang.String' not found
我无法为 getAsString() 中的值获取正确的数据类型。
对于已经看到/评论过我之前的问题的您,我再次被这些“本地化问题”所困扰......
请指教
/米