带小数点后两位的整数

问题描述 投票:-2回答:2

请不要将此问题报告为“已发布或已报告”,事实并非如此,可能/应该如此,但事实并非如此。这是JAVA极其奇怪的表现。我也想知道负责数字处理的那个人是否还在为JAVA工作,因为他/她对此事一无所知!代码和格式的丛林。无论如何,我的鬼问题。 (这是代码的一部分,但只是相关部分)如您所见,所有变量(a,b,c和d)均为double。但系统地导致Exception in thread "main" java.util.IllegalFormatConversionException: f != java.lang.String无论我进行了什么更改,尝试并在网上查找,它始终会拒绝工作。但是下面,在Internet上找到的示例确实可行。但这是完全一样的!两个变量都声明为double,并且都通过相同的方法进行转换!!

case 2:

         Hypotheek hypspa = new HypSpaar(UitvoerHypotheek.hs,UitvoerHypotheek.lt,UitvoerHypotheek.perc);
         double a =  hypspa.aflossing();
         double b =  hypspa.aflossing();
         double c =  hypspa.rente();
         double d =  (1+((float)UitvoerHypotheek.perc/100));

         System.out.println("jaar" +   "    inleg " + "           gespaard " + "       rente " );

         for (int t=1; t<=UitvoerHypotheek.lt; t++)
         {

         System.out.format(  "      "     +  "%.2f", b  + "        " + "%.2f", a  + "     " + "%.2f", c + "     \n");

         a =  d*(a) + b;

        }

java

public class test8 {
    public static void main(String[] args) {
        double num = 1.34567;
        System.out.format("%.4f", num);
    }
}
java format rounding
2个回答
1
投票

[如果您要在字符串中插入多个双打,则表示这样的意思:

System.out.format("      %.2f        %.2f     %.2f     \n", b, a, c);

您所拥有的是将字符串作为格式参数传递,并且您不能使用%f插入字符串参数。

System.out.format("      " + "%.2f", b + "        " + "%.2f", a + "     " + "%.2f", c + "     \n");
                  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
                   format string          string arg 1           string arg 2       string arg 3

1
投票

使用此

      double num = 1.34567;
      DecimalFormat df = new DecimalFormat("#.##");
     df.format(num);

我也建议您花些时间阅读此https://stackoverflow.com/help/how-to-ask

© www.soinside.com 2019 - 2024. All rights reserved.