首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单位换算方法

单位换算方法
EN

Stack Overflow用户
提问于 2016-03-05 10:29:47
回答 2查看 110关注 0票数 0

我正在编写一个转换某些单位的程序,但我一直遇到错误。我的程序有4个方法(一个用于原始单位,一个用于转换为新单位,一个用于转换&一个用于多少个单位),而且每个方法都是正确编写的。当我运行它时,我得到了“未解决的编译问题”的错误。

代码如下:

代码语言:javascript
复制
public static String getUnitFrom(){
    String original = "";

    final String OZ = "oz";
    final String LB = "lb";
    final String IN = "in";
    final String FT = "ft";

    switch(original){
    case OZ:
        original = "oz";
        break;
    case LB:
        original = "lb";
        break;
    case IN:
        original = "in";
        break;
    case FT:
        original = "ft";
        break;
    default:
        System.out.println("Invalid input.");
    }
    return original;    

}

public static String getUnitTo(String conversionFromUnit){
    String conversionFromUnit = "";
    final String G = "g";
    final String KG = "kg";
    final String MM = "mm";
    final String CM = "cm";
    final String M = "m";

    if(getUnitFrom().equals("oz") || getUnitFrom().equals("lb")){
        switch(conversionFromUnit){
        case G:
            conversionFromUnit = "g";
            break;
        case KG:
            conversionFromUnit = "kg";
            break;
        default:
            System.out.println("Invalid conversion!");
        }
    }
    else if (getUnitFrom().equals("in") || getUnitFrom().equals("ft")){
        switch (conversionFromUnit){
        case MM:
            conversionFromUnit = "mm";
            break;
        case CM:
            conversionFromUnit = "cm";
            break;
        case M:
            conversionFromUnit = "m";
            break;
        default:
            System.out.println("Invalid conversion!");
        }
    }
    return conversionFromUnit;
}
public static double getValue(){
    double value = 0;

    if(getUnitFrom() > 0 && getUnitTo() > 0){
        value = input.nextDouble();
    }

}
public static double getConversionRate(String from, String to){
    double rate = 0;

    if(from.equals(getUnitFrom("oz")) && to.equals(getUnitTo("g"))){
        rate = 28.3;
    }
    else if(from.equals(getUnitFrom("oz")) && to.equals(getUnitTo("kg"))){
        rate = 0.028;
    }
    else if(from.equals(getUnitFrom("lb")) && to.equals(getUnitTo("g"))){
        rate = 453.6;
    }
    else if(from.equals(getUnitFrom("lb")) && to.equals(getUnitTo("kg"))){
        rate = 0.045;
    }

    if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("mm"))){
        rate = 25.4;
    }
    else if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("cm"))){
        rate = 2.54;
    }
    else if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("m"))){
        rate = 0.0254;
    }
    else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitTo("mm"))){
        rate = 304.8;
    }
    else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitFrom("cm"))){
        rate = 30.48;
    }
    else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitFrom("m"))){
        rate = 0.3048;
    }

    return rate;
}

public static void main(String[] args) {
    String convertFrom = getUnitFrom();
    String convertTo = getUnitTo();
    double valueOf = getValue();
    System.out.println(getValue() + " " + getUnitFrom() + " = " + (getValue() * getConversionRate()) + " " + getUnitTo());

}
public static Scanner input = new Scanner(System.in);
EN

回答 2

Stack Overflow用户

发布于 2016-03-05 10:39:27

  1. 这是因为您的方法getUnitTo( string )需要字符串作为参数,而在main方法中您没有传递>0 && getUnitTo() > 0):getUnitFrom返回一个无法使用">“运算符进行比较的字符串。
  2. 所有错误都是由于不正确的函数调用造成的(请检查函数的签名并传递所需的值)。
票数 0
EN

Stack Overflow用户

发布于 2016-03-05 10:40:04

抛出错误后会列出问题。

代码语言:javascript
复制
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
The method getUnitTo(String) in the type Testing is not applicable for the arguments ()
The method getConversionRate(String, String) in the type Testing is not applicable for the arguments ()
The method getUnitTo(String) in the type Testing is not applicable for the arguments ()

at testing.Testing.main(Testing.java:122)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35809275

复制
相关文章

相似问题

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