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 + "\"";