小编Zoh*_*aib的帖子

DecimalFormat模式

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;
    }
Run Code Online (Sandbox Code Playgroud)

"###,###,###,###,##0.00",这种模式的目的究竟是什么?我认为它有两个目的

  1. 分组号码,即千分隔符号
  2. 在十进制之后附加两个零,如果缺少十进制,则转换为23到23.00

但为什么有"0"而不是"#"十进制之前?这零的目的究竟是什么?谢谢您的帮助.

java decimalformat

9
推荐指数
2
解决办法
2万
查看次数

添加字节时的不同编译器行为

byte b1 = 3;
byte b2 = 0;

b2 = (byte) (b2 + b1);  // line 3
System.out.println(b2);

b2 = 0;
b2 += b1;               // line 6
System.out.println(b2);
Run Code Online (Sandbox Code Playgroud)

在第3行,如果我们不将结果类型转换为字节,那么这是一个编译错误 - 这可能是因为加法的结果总是int而int不适合一个字节.但显然我们不必在第6行进行类型转换.这两个语句,第3行和第6行都不等同吗?如果不是那么还有什么不同?

java

5
推荐指数
1
解决办法
135
查看次数

重载方法选择的困境

public void testFunc(Object o) {
     System.out.println("testFunc-Object");
}

public void testFunc(String s) {
     System.out.println("testFunc-String");
}
Run Code Online (Sandbox Code Playgroud)

这两种方法都在测试类中.如果我从测试类的main方法调用以下方法,将调用哪个方法?

Test t = new Test();
t.testFunc(null);
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,testFunc(String)被称为,但为什么呢?我很感激你的帮助.

java

1
推荐指数
1
解决办法
83
查看次数

标签 统计

java ×3

decimalformat ×1