0
public static String convertCentimeterToHeight(double d) {
    double feetPart = 0;
    double 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.valueOf(feetPart)) + "' " + String.valueOf(inchesPart) + "''";
}

小数を削除しようとしていますが、まだこのようなものが得られます5.0' 6.0"。を実行するString.value() on a variableと、小数点以下が削除され、正確な数値が得られますか?

4

5 に答える 5

3

にキャストするだけですint

(int) d;
于 2013-06-04T11:52:35.273 に答える
1

double 変数を int にキャストできます

return (String.valueOf((int)feetPart)) + "' " + 
String.valueOf((int)inchesPart) + "''";

それも修正する必要があります。

于 2013-06-04T11:52:07.157 に答える
1

ご参考までに。

// always true, it never returns null
String.valueOf(d) != null 
// always true, a double is never an empty string.
String.valueOf(d).trim().length() != 0; 

// same as
int feetPart = (int) (d / 2.54 / 12);
int inchesPart = ((int) (d / 2.54)) % 12;

// same as
return feetPart + "' " + inchesPart + "\"";
于 2013-06-04T18:18:43.987 に答える
0

すべての答えが変数の型を置き換えます。私のやり方は続きます。これらのコードのみを使用すると、魔法が見つかります。

double d = 1.0d;
String s = String.format("%1$.0f", d);
System.out.println(s);
于 2013-06-04T12:18:38.583 に答える