Scala 在播放2模板中设置双精度格式的正确方法是什么
这里是我的缩写代码从播放2模板Scala 在播放2模板中设置双精度格式的正确方法是什么,scala,playframework-2.0,Scala,Playframework 2.0,这里是我的缩写代码从播放2模板 @(variable: com.mypackage.Variable) <div class='statsbody'> <div class='statsform'> <label>Average:</label> <span>@"%.2f".format(variable.getAverage())</span> </div>
@(variable: com.mypackage.Variable)
<div class='statsbody'>
<div class='statsform'>
<label>Average:</label>
<span>@"%.2f".format(variable.getAverage())</span>
</div>
</div>
我是从上面得到这个想法的,它说明了如何在scala命令提示符下实现它,这很好,但在模板中不起作用
getAverage()
方法属于我正在使用的一个外部Java包,它返回一个原始的double
。这一切都很好,没有格式,我可以很高兴地显示正确的数字
我尝试了多种替代方法,包括使用静态Java字符串格式化方法
@String.format("%.2f", variable.getAverage())
…给了
Overloaded method value [format] cannot be applied to (String, Double)
所以我的问题是,在Play 2模板中设置double格式的正确方法是什么?我知道我可能会使用Javascript,但我想知道是否有Play/Scala解决方案。我找到了答案,但它没有直接解决眼前的问题。如果我像这样将double
放入java.lang.double
中,我可以让String.format
代码正常工作
@String.format("%.2f", new java.lang.Double(variable.getAverage()))
这暂时解决了我的问题,但并没有真正回答问题。必须有一个Scala/Play解决方案。。。必须在那里吗?使用括号:
@("%.2f".format(variable.getAverage()))
或:
它允许您在模板中编写多语句scala代码。我找到的唯一正确更改用户语言并对数字应用格式的解决方案是: 在控制器中:
public Result lang(String lang) {
changeLang(lang);
Logger.debug("Language change request: " + lang);
return redirect(routes.Dashboard.dashboard());
}
在模板中,我们使用以下内容:
<td>@("%.2f".formatLocal(lang().toLocale(), variable.getAverage()))</td>
@(“%.2f.formatLocal(lang().toLocale(),variable.getAverage()))
public Result lang(String lang) {
changeLang(lang);
Logger.debug("Language change request: " + lang);
return redirect(routes.Dashboard.dashboard());
}
<td>@("%.2f".formatLocal(lang().toLocale(), variable.getAverage()))</td>