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"。当我们执行 a 时String.value() on a variable,它会删除小数并给我确切的数字吗?

4

5 回答 5

5

当您想将 ints 存储在feetPartinchesPart变量中时,只需将它们声明为ints :

int feetPart = 0;
int inchesPart = 0;

然后,您将避免它们显示为doubles (即带有尾随.0)。

于 2013-06-04T11:49:21.167 回答
3

您可以简单地将其转换为int.

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

您可以将双变量转换为 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 回答