【问题标题】:Only fraction digits with fmt:formatNumber?只有 fmt:formatNumber 的小数位数?
【发布时间】:2010-10-27 14:58:55
【问题描述】:

是否有可能只显示带有fmt:formatNumber 的小数位?我基本上需要在两个字段中呈现类似价格的双精度:小数和小数位(123.456 -> 123 456),我想避免字符串拆分等:-)

该解决方案还必须使用最少的小数位数才能创建例如:

123.1 -> 123 01

表示的数据是价格,由于某种原因存储为十进制数。

minFractionDigits="2" 将生成 .01 作为第二个字段的输出。

另一个输出示例是:

123<span>01</span>

【问题讨论】:

    标签: java jsp jstl


    【解决方案1】:

    是的:

    <fmt:formatNumber maxIntegerDigits="0" />
    

    更新:

    如何乘以 100、1000 或类似的值,然后将其输出为整数。说:

    <fmt:formatNumber maxIntegerDigits="3"  value="${yourValue * 1000}" 
         maxFractionDigits="0" />
    

    因此,您将不得不修剪一些十进制数字。

    【讨论】:

    • 是的,这适用于基本情况,但遗憾的是不能与 minFractionDigits 结合使用。添加它的那一刻,输出还包含逗号。抱歉,忘记在问题中提及这一点。稍后会更新。
    【解决方案2】:

    给定您的电话号码: 你可以用 mult/div & mod 做算术,比如:

    <fmt:formatNumber value="${((myNumber*100) - ((myNumber*100) mod 100)) div 100}"/>
    

    对于第一个单独的部分 (123) 和小数部分类似。相当丑陋和冗长,但却是一个独立的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      相关资源
      最近更新 更多