有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

爪哇科特林。如何将十进制数的结尾设置为零?

我需要格式化数字

我需要以下结果:

3434 -> 3 434

3434.34 -> 3 434.34

3434.3 -> 3 434.30

这是我的密码:

  val formatter = DecimalFormat("#,###,##0.##")
            return formatter.format(value)

但我得到的结果是:

3434 -> 3 434

3434.34 -> 3 434.34

3434.3 -> 3 434.3 // wrong!! expected 3 434.30

如果小数点后有一位数字,我需要在末尾加零

请帮助我如何解决这个问题


共 (2) 个答案

  1. # 1 楼答案

    例如:

    import java.text.DecimalFormat;
    import java.text.DecimalFormatSymbols;
    import java.util.*;  
    
    public class AddZeroToOneDigitDecimal{
    
         public static void main(String []args){
           System.out.println(customFormat(3434));
           System.out.println("     ");
           System.out.println(customFormat(3434.34));
           System.out.println("     ");
           System.out.println(customFormat(3434.3));
         }
    
         public static String customFormat(double d){
    
            String result =  formatter.format(d);
            return (result.replace(".00",""));
         }
         
         private static DecimalFormat formatter;
         private static final String DECIMAL_FORMAT = "#,###,##0.00";
         private static DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
        
         static {
             formatSymbols.setDecimalSeparator('.');
             formatSymbols.setGroupingSeparator(' ');
             formatter = new DecimalFormat(DECIMAL_FORMAT, formatSymbols);
         }
    }
    

    简化的

     val formatter = DecimalFormat("#,###,##0.00");
     return formatter.format(value).replace(".00","");
    
  2. # 2 楼答案

    移除.之后的最后两个#,并添加00来代替##

    val dec = DecimalFormat("#,###,##0.00")