请不要将此问题报告为“已发布或已报告”,事实并非如此,可能/应该如此,但事实并非如此。这是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);
}
}
[如果您要在字符串中插入多个双打,则表示这样的意思:
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
使用此
double num = 1.34567;
DecimalFormat df = new DecimalFormat("#.##");
df.format(num);
我也建议您花些时间阅读此https://stackoverflow.com/help/how-to-ask