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
时,它会删除小数并给出确切的数字吗?
答案 0 :(得分:5)
由于您希望将int
存储在feetPart
和inchesPart
个变量中,只需将它们声明为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);