首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java中System.out.printf命令的问题

Java中System.out.printf命令的问题
EN

Stack Overflow用户
提问于 2010-09-12 07:22:29
回答 2查看 43.5K关注 0票数 44

我是编程新手,所以我要提前道歉。我正在运行一个程序,在Java中的System.out.printf方法有一个问题。我知道程序中的其他一切都工作正常(经过测试)。然而,这似乎不起作用。

错误是:

线程"main“java.util.IllegalFormatConversionException中出现

异常:d != java.lang.Double

在java.util.Formatter$FormatSpecifier.failConversion(Unknown源代码中)

在java.util.Formatter$FormatSpecifier.printInteger(Unknown源代码中)

在java.util.Formatter$FormatSpecifier.print(Unknown源代码中)

在java.util.Formatter.format(未知源)

在java.io.PrintStream.format(未知源)

在java.io.PrintStream.printf(未知源)

在Advisor_Score.main(Advisor_Score.java:17)

我的代码是:

代码语言:javascript
复制
import java.lang.Math;
public class Advisor_Score {
    public static void main(String[] args){ 
        double l[] = {101,1,1,1};
        double k[] = {102,2,2,4};
        double m[] = {103,5,5,5,5,5,5,5};
        double All_users[][]={l,k,m};
        double sum[]=new double [All_users.length];
        double [] raw_advisor=new double [All_users.length];
        double []advisor_score= new double [All_users.length];
        for (int i=0;i<All_users.length;i++){
                for(int j=1;j<All_users[i].length;j++){
                        sum[i]+=All_users[i][j];
                }
                raw_advisor[i]=((sum[i]-(3*(All_users[i].length-1)))/4);
                advisor_score[i]= 2.5+(2.5*(1-Math.pow(Math.E, -.5*raw_advisor[i])));
                System.out.printf("%d: %d\n", All_users[i][0], advisor_score[i]);
                }       
    }
}

我不太确定为什么它不能工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-12 07:25:21

%d表示一个整数;您希望使用%f表示double。查看Javadoc中的formatting string syntax

票数 123
EN

Stack Overflow用户

发布于 2022-02-13 22:29:10

如果您的dataType是bigDecimal,则必须使用:%g

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3693079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档