从数字中删除小数

时间:2013-06-04 11:47:33

标签: java

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时,它会删除小数并给出确切的数字吗?

5 个答案:

答案 0 :(得分:5)

由于您希望将int存储在feetPartinchesPart个变量中,只需将它们声明为int s:

int feetPart = 0;
int inchesPart = 0;

然后你会避免将它们显示为double s(即尾随.0)。

答案 1 :(得分:3)

您只需将其投射到int即可。

(int) d;

答案 2 :(得分:1)

您可以将双变量转换为int

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

这也应该解决它。

答案 3 :(得分: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 + "\"";

答案 4 :(得分:0)

所有答案都会替换您的变量类型。 我的方式保持。 只有使用这些代码才能找到神奇的效果。

double d = 1.0d;
String s = String.format("%1$.0f", d);
System.out.println(s);