java为什么JSTL使用${dollarAmount}将99的双精度值输出为99.0(不是99.00)?
我有一个double
值dollarAmount
,它的值为99
:
double dollarAmount = 99;
当我尝试使用以下代码将其输出到我的页面时:
<c:out value="${dollarAmount}"/>
结果是99.0
因为它代表一个财务价值,所以我想将其作为
99
或作为
99.00
有没有办法强迫<c:out>
这样做
# 1 楼答案
将后端数据打印到HTML响应时,默认情况下,所有非字符串java对象都转换为} 的默认结果。格式按照documentation进行设置
String
。HTML不能用其他方式表示。您将看到99.0
,因为这是^{要格式化货币,最好使用^{} ,其
type
设置为currency
它将显示为
# 2 楼答案
我建议使用FormatNumber标签fmt
差不多
# 3 楼答案
使用^{}
# 4 楼答案
在java中,打印特定数量的数字的最佳方式是
printf
,这是GNU GPL下提供的第三方实用程序https://sharkysoft.com/,或收取商业使用费。以下是JavaDoc页面:http://sharkysoft.com/archive/printf/docs/javadocs/lava/clib/stdio/doc-files/specification.htm