错误: MyExchangeClass类型中的方法exchangeConversion(String,String,float)不适用于参数(String,String,double)
jsp文件中的代码,错误与15.4和15.4f,但如果更改功能和TLD为double都可以正常工作。为什么15.4和15.4f好像是双打?
...
From GBP to USD: ${ elfuncs:exchange("GBP", "USD", 15.4f) }
Otherwise: ${ elfuncs:exchange("GBP", "YEN", 15.4) }
TLD中的代码
<function>
<name>exchange</name>
<function-class>mypackage.MyExchangeClass</function-class>
<function-signature>float exchangeConversion(java.lang.String, java.lang.String, float)</function-signature>
</function>
java类的代码 公共类MyExchangeClass {
public static float exchangeConversion(String from, String to, float amount) {
float calculatedAmount = 0.0f;
/* Example implementation code: */
if(from.equals("GBP") && to.equals("USD")) {
calculatedAmount = amount*1.5f;
}
return calculatedAmount;
}
}
答案 0 :(得分:0)
因为在EL specification中指定了这一点。浮点文字始终被解释为double
。
1.3文字
在evalexpression中有布尔值,整数,浮点,字符串和null的文字。
...
- 浮点 - 由
FloatingPointLiteral
构造中的定义 第1.19节。
1.19收集的语法
...
FloatingPointLiteral
的值范围从Double.MIN_VALUE
到Double.MAX_VALUE
。
只需在您的函数中将float
更改为double
。