Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 能量转换_Android_Unit Conversion - Fatal编程技术网

Android 能量转换

Android 能量转换,android,unit-conversion,Android,Unit Conversion,我从一个示例中获取了这段代码,但我不知道如何计算基本单位的值。 这是转换能量的代码: public enum U_EnergyConverter implements UnitConverter { energy_calories { @Override public double toBaseUnit(double amount) { return amount; } }, energy_joules { @Override publi

我从一个示例中获取了这段代码,但我不知道如何计算基本单位的值。 这是转换能量的代码:

public enum U_EnergyConverter implements UnitConverter {
energy_calories {
    @Override
    public double toBaseUnit(double amount) {
        return amount;
    }

},
energy_joules {
    @Override
    public double toBaseUnit(double amount) {
        return amount * 4.19;
    }
},
energy_kilocalories {
    @Override
    public double toBaseUnit(double amount) {
        return amount * 0.001;
    }

};
public abstract double toBaseUnit(double amount);

public double toUnit(double baseUnitAmount) {
    return baseUnitAmount * (1 / (toBaseUnit(1)));
}
我在上面代码中使用的金额给了我错误的结果。我不知道从哪个来源可以得到单位换算的精确值

谢谢你的帮助

更新: 这是运行良好的质量单位代码:

public enum MassConverter implements UnitConverter {
mass_g {
    @Override
    public double toBaseUnit(double amount) {
        return amount;
    }

},
mass_kg {
    @Override
    public double toBaseUnit(double amount) {
        return amount * 1000.00;
    }

},
mass_oz {
    @Override
    public double toBaseUnit(double amount) {
        return amount * 28.3495231;
    }

},
mass_lb {
    @Override
    public double toBaseUnit(double amount) {
        return amount * 453.59237;
    }

};
public abstract double toBaseUnit(double amount);

public double toUnit(double baseUnitAmount) {
    return baseUnitAmount * (1 / (toBaseUnit(1)));
}
像这样改变:

energy_kilocalories {
    @Override
    public double toBaseUnit(double amount) {
        return amount * 1000;
    }

};

toBaseUnit
应返回给定单位(如焦耳、千卡等)的卡路里值。这就是正确的示例所做的。你的正好相反。

我不明白你的问题<代码>我使用的金额没有给我正确的结果。更明确一些。举个具体的例子。例如,当我把15千卡路里转换成卡路里时,它给了我62802.0,这是错误的,假设它给了我15000卡路里。张贴你用来获得结果的代码。对不起,我是指错误的结果。首先,给我上面贴的代码,给出错误的结果。但是第二个代码运行良好,它是一个从-到卡路里、千卡和焦耳的简单转换。我的意思是相互转换。我已经更新了我的答案,对不起,好吧,我现在就试试:)谢谢