public static double convertFeetandInchesToCentimeter(String feet, String inches) {
    double heightInFeet = 0;
    double heightInInches = 0;
    try {
        if (feet != null && feet.trim().length() != 0) {
            heightInFeet = Double.parseDouble(feet);
        }
        if (inches != null && inches.trim().length() != 0) {
            heightInInches = Double.parseDouble(inches);
        }
    } catch (NumberFormatException nfe) {

    }
    return (heightInFeet * 30.48) + (heightInInches * 2.54);
}

上面是将英尺和英寸转换为厘米的功能,下面是将厘米重新转换为英尺和英寸的功能。
public static String convertCentimeterToHeight(double d) {
    int feetPart = 0;
    int inchesPart = 0;
    if (String.valueOf(d) != null && String.valueOf(d).trim().length() != 0) {
        feetPart = (int) Math.floor((d / 2.54) / 12);
        inchesPart = (int) Math.ceil((d / 2.54) - (feetPart * 12));
    }
    return String.format("%d' %d''", feetPart, inchesPart);
}

当我输入正常值(例如5 Feet and 6 Inches)时,我遇到了问题,它完美地转换为厘米,然后又转换回5英尺和6英寸。

问题是当我转换1英尺和1英寸或2英尺和2时
英寸,将其转换回1英尺2英寸和2英尺3
英寸。

最佳答案

我相信:

inchesPart = (int) Math.ceil((d / 2.54) - (feetPart * 12));

应该:
inchesPart = (int) Math.floor((d / 2.54) - (feetPart * 12));

10-08 14:33