Java 从数字中删除小数
我正在尝试删除小数,但我仍然得到类似于Java 从数字中删除小数,java,Java,我正在尝试删除小数,但我仍然得到类似于5.0'6.0“的结果在变量上它是否删除小数并给出确切的数字?当您要将ints存储在feetPart和inchesPart变量中时,只需将它们声明为ints: public static String convertCentimeterToHeight(double d) { double feetPart = 0; double inchesPart = 0; if (String.valueOf(d) != null &&
5.0'6.0“
的结果在变量上它是否删除小数并给出确切的数字?当您要将int
s存储在feetPart
和inchesPart
变量中时,只需将它们声明为int
s:
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) + "''";
}
然后,您将避免将它们显示为
double
s(即使用尾部的.0
)。您可以将双变量转换为int
int feetPart = 0;
int inchesPart = 0;
这应该也能解决问题。您只需将其转换为
int
return (String.valueOf((int)feetPart)) + "' " +
String.valueOf((int)inchesPart) + "''";
所有答案都将替换变量类型。 我的方式保持不变。 只有使用这些代码,你才能找到魔力
(int) d;
供您参考
double d = 1.0d;
String s = String.format("%1$.0f", d);
System.out.println(s);
使用整数。为什么使用双精度来存储整数?为什么不使用“强制转换”“?同意,为什么不改用Integer.parseInt呢?人们太愚蠢或太聪明了,他问的是5.4到54的情况:/2件小事:1。对于英寸,使用
round
,而不是ceil
,以获得更合理的值。2.您不需要对d
执行null检查,因为双精度
是一个基元,基元从不为null。您可以参考了解如何使用java格式。此外,String.format将自动处理null异常或非法异常。如果你使用类型转换,你应该自己处理。那不方便。你在用锤子敲开螺母。这是简单的(int)
强制转换效率的数百倍。
// 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 + "\"";