在我的 JSF2 应用程序中,我希望显示双精度值而不使用指数表示法。是否可以?
我无法使用NumberFormat
or DecimalFormat
因为它将把我的数据类型更改为字符串。
我从Java文档中了解到,如果我的double值小于10^-3或大于或等于10^7,那么它以所谓的“表示”计算机科学记数法"(Ref: http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#toString() http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#toString()).
并且,在 JSF 中显示双精度值时,它会在内部将任何数据类型转换为字符串。
例如,如果我的双精度值是9999999999
它显示为9.9e^9
。我希望它按原样显示。 IE9999999999
但是,是否有可能覆盖 Double 的这个字符,或者是否有其他方法来解决这个问题?
对于此类问题的正确解决方案是尽可能长时间地传递内部数据类型。就在您向用户显示它的那一刻,您可以使用正确的格式对其进行格式化DecimalFormat
.
因此,您必须在 JSF2 UI 中找到显示双精度数的所有位置,并在那里使用正确的格式化程序。
请注意DecimalFormat
不是威胁安全的,因此您必须为每个请求创建一个新的格式化程序(至少)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)