当前位置: 首页 > 面试题库 >

DecimalFormat模式

苏运良
2023-03-14
问题内容
public static String formatAmountUpToTwoDecimalNumber(String amount)
    {       
        if(amount==null || "".equals(amount))
        {
             return "";
        }  
        Double doubleAmount = Double.valueOf(amount);
        double myAmount = doubleAmount.doubleValue();
        NumberFormat f = new DecimalFormat("###,###,###,###,##0.00");
        String s = f.format(myAmount);
        return s;
    }

"###,###,###,###,##0.00",此模式的目的是什么?我相信这有两个目的

  1. 分组数字,即千位分隔符
  2. 如果缺少小数点,则在小数点后附加两个零,将23转换为23.00

但是为什么在小数点之前"0"而不是"#"小数点之前呢?这个零的目的是什么?谢谢您的帮助。


问题答案:
Symbol  Location    Localized?  Meaning
0       Number      Yes         Digit
#       Number      Yes         Digit, zero shows as absent

来自:http
:
//docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

所以#当没有数量未显示。前导0表示小数点分隔符前至少应有1位数字。



 类似资料:
  • java.text.DecimalFormat类用于根据自定义格式和按区域设置格式化数字。 示例 - 格式编号 在这个例子中,我们根据给定的模式格式化数字。 IOTester.java import java.text.DecimalFormat; public class I18NTester { public static void main(String[] args) {

  • 使用DecimalFormatSymbols类,可以更改默认分隔符号,分组分隔符号等。 以下示例说明了相同的内容。 IOTester.java import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; public class I18NTester { public static void main(Stri

  • 默认情况下,DecimalFormat对象使用JVM的语言环境。 我们可以在使用NumberFormat类创建DecimalFormat对象时更改默认语言环境。 在下面的示例中,我们将对两个不同的区域设置使用相同的模式,您可以发现输出中的差异。 IOTester.java import java.text.DecimalFormat; import java.text.NumberFormat;

  • 问题内容: 我试图摆脱我的double值的十进制分隔符之后不必要的符号。我这样做是这样的: 但是,当我运行此代码时,它会抛出: 如我所见,在string这样的字符串上效果很好,但是在like这样的字符串上却令人窒息。我该如何解决?有没有比这更优雅的方式 有没有办法覆盖类的默认十进制分隔符值?还有其他想法吗? 问题答案: 通过 在我的double值的十进制分隔符之后摆脱不必要的符号 您是说要舍入到小

  • 问题内容: 这是小代码来说明我所看到的 打印: 我要打印 我需要做什么? 问题答案: 在使用之前添加以下行: 查看其他舍入模式,看看哪种最适合您。 注意:此方法仅在JDK 1.6或更高版本中有效

  • DecimalFormat类是NumberFormat的子类。DecimalFormat类属于java.text包。通过getXxxInstance方法获得的NumberFormat对象实例实际上就是DecimalFormat类的对象实例。由于DecimalFormat类不是抽象类,因此,可以直接创建DecimalFormat类的对象实例。下面的代码使用无参数的构造方法创建了DecimalForm