Java 拆分和倍增会给我错误的值

Java 拆分和倍增会给我错误的值,java,split,double,Java,Split,Double,我想把一个双变量乘以时间。例如,我有2小时30分钟。所以我必须遵循的程序是,将2乘以15小时,然后将30分钟除以60,也就是小时的分钟数,再乘以15。这是我的密码: Double water_time = Double.valueOf(jTextField1.getText()); String[] seperated = String.valueOf(water_time).split("\\."); int[] intseperated = n

我想把一个双变量乘以时间。例如,我有2小时30分钟。所以我必须遵循的程序是,将2乘以15小时,然后将30分钟除以60,也就是小时的分钟数,再乘以15。这是我的密码:

        Double water_time = Double.valueOf(jTextField1.getText());
        String[] seperated = String.valueOf(water_time).split("\\.");
        int[] intseperated = new int[2];
        intseperated[0] = Integer.parseInt(seperated[0]);
        intseperated[1] = Integer.parseInt(seperated[1]);
        int price1 = intseperated[0] * propertiesFile.multiply_water;
        double price2 = (intseperated[1] * propertiesFile.multiply_water) / 60.0D;
        double price = (price1 + price2);
我的问题是,当iam输入0.10时,我得到0.25,这是正确的值,但当我输入0.11时,我得到2.75,这是错误的。我不明白为什么

谢谢你抽出时间。
事先谢谢你

据我所知,你想把十进制值除以60,然后再乘以15。但是你所做的是先乘以15,然后把整个答案除以60

double price2 = (intseperated[1] / 60.0D) * propertiesFile.multiply_water;

问题在于你宣布双倍供水时间的方式

0.10变成了双倍的0.1,所以实际上是1除以4,得到的是数学上不正确的0.25

0.11变成了预期的双倍0.11,然后将11除以4,数学上修正为2.75

若要修复,请先拆分字符串,然后将值转换为双倍值并进行相应计算

工作代码:

    String[] seperated = jTextField1.getText().split("\\.");
    int[] intseperated = new int[2];
    intseperated[0] = Integer.parseInt(seperated[0]);
    intseperated[1] = Integer.parseInt(seperated[1]);
    int price1 = intseperated[0] * propertiesFile.multiply_water;
    double price2 = (intseperated[1] * propertiesFile.multiply_water) / 60.0D;
    double price = (price1 + price2);

解释以及sampl输入/输出非常混乱。我在代码中没有看到任何将2乘以15小时的重新组合的内容。您需要提供更好的解释,以及属性文件等中数据的值是什么。15是配置文件属性文件中的一个示例。我在您发送给我的内容中对其进行了更改,但仍然得到了错误的值。我认为现在可以了,非常感谢。但是我犯了一个错误。你知道是什么引起的吗?