【问题标题】:Java measure units calculatorJava度量单位计算器
【发布时间】:2015-10-28 15:21:35
【问题描述】:

如何更改此代码以使变量 operation2 在第二个 switch 函数中工作。 当我执行parseDouble 时,会出现错误bla bla parsedouble
即使我尝试创建全局operation2,它也不起作用。

package matura;

import java.util.Scanner;

public class MeasureUnits {

public static void main(String args[])

{
    String operation;
    String operation2;

    Scanner value = new Scanner(System.in);
    System.out.println(" Write value: :");

    double wartość;
    wartość = value.nextDouble();

    double yard, inch, foot, mile;
    double metr, decymetr, centymetr, kilometr;

    centymetr = 1;

    metr = 100 * centymetr;
    centymetr = 1;
    kilometr = centymetr * 100000;
    decymetr = 10 * centymetr;

    yard = 0.9144 * metr;
    inch = 2.54 * centymetr;
    mile = 1.609344 * kilometr;
    foot = 30.48 * centymetr;

    Scanner input1 = new Scanner(System.in);
    System.out.println(" Choose one of measure units" + " 'yard' 'inch' 'feet' 'mile' :");
    operation2 = input1.next();

    switch (operation2) {
    case "yard":
        System.out.println("You've choosed 'yard' ");
        break;
    case "inch":
        System.out.println(" You've choosed 'inch'");
        break;

    case "mile":
        System.out.println(" You've choosed 'mile'");
        break;

    case "foot":
        System.out.println("You've choosed 'foot'");
        break;

    }

    {

        Scanner input2 = new Scanner(System.in);
        System.out.println(" Choose one of polish measure units" + " 'metr' 'centymetr' 'decymetr' 'kilometr' :");
        operation = input2.next();

        switch (operation) {
        case "metr":
            System.out.println(operation2 * wartość / 100);
            break;

        case "centymetr":
            System.out.println(operation2 * wartość / 100);
            break;

        case "kilometr":
            System.out.println(operation2 * wartość / 100000);
            break;

        case "decymetr":
            System.out.println(operation2 * wartość / 10);
            break;

        }

    }
}

【问题讨论】:

  • bla bla parsedouble 称为错误消息。一些才华横溢的程序员花了很长时间研究编译器,以便它能给你有意义有用的错误消息。请了解它们在调试中是必不可少的。所以“废话”对任何人都没有帮助。此外,switch 不是一个函数,你不能在双精度上使用 switch。在此处查看完全相同的问题:stackoverflow.com/questions/5141830/…
  • 除了上述所有内容之外,我很难相信您的实际代码是这样格式化的。你能把它整理一下,这样我的眼睛就不会疼了吗?
  • bla bla parsedouble 只是另一个 pesky 错误消息,告诉您究竟出了什么问题以及发生在哪里。提示:你应该阅读它,如果你不明白它是什么以及它发生的原因,请粗略地用谷歌搜索并努力纠正它。如果您仍然卡住了,那么您可以在这里提问。
  • 我将 double 更改为 int,但不知道该放在哪里...如果在第一次切换中,我在英语度量单位等之后出现错误。线程“main”中的异常 java.lang.NumberFormatException :对于输入字符串:java.lang.Integer.parseInt(Integer.java:580) 的 java.lang.Integer.parseInt(Integer.java) 的 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 的“码” :615) 在 matura.MeasureUnits.main(MeasureUnits.java:39) Java 结果:1

标签: java calculator units-of-measurement measure


【解决方案1】:

您是否看过 JSR 363 和 Java 度量单位项目:http://unitsofmeasurement.github.io/

参考实现和其他单位系统(SI、US 等)包含 Java 中的所有相关单位定义,如果您需要更多,可以在 API 之上定义自己的。

【讨论】:

    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 2019-05-01
    • 2013-02-02
    • 2011-09-22
    • 2011-02-13
    • 2013-02-26
    相关资源
    最近更新 更多