Android 删除小数点后的数字

Android 删除小数点后的数字,android,decimal,Android,Decimal,我得到一个双精度值(例如,-3.1234),其中包含一个以小数为单位的值(本例中为0.1234)。我希望删除十进制值中的值(在本例中,我希望值为-3)。我该怎么做?如果小数只有0,我知道如何删除小数,但在这种情况下,我没有小数为0 无论如何,这里是代码: DecimalFormat format = new DecimalFormat(); format.setDecimalSeparatorAlwaysShown(false); Double asdf = 2.0; Double asdf2

我得到一个双精度值(例如,-3.1234),其中包含一个以小数为单位的值(本例中为0.1234)。我希望删除十进制值中的值(在本例中,我希望值为-3)。我该怎么做?如果小数只有0,我知道如何删除小数,但在这种情况下,我没有小数为0

无论如何,这里是代码:

DecimalFormat format = new DecimalFormat();
format.setDecimalSeparatorAlwaysShown(false);

Double asdf = 2.0;
Double asdf2 = 2.11;
Double asdf3 = 2000.11;
System.out.println( format.format(asdf) );
System.out.println( format.format(asdf2) );
System.out.println( format.format(asdf3) );
/*
prints-:
2
2.11
2000.11
*/

只需使用
Double
intValue()
方法即可获得整数部分。

您可以将其强制转换为
int

int i=(int)2.12
System.out.println(i); // Prints 2

对十进制值进行四舍五入并将其转换为整数

Integer intValue = Integer.valueOf((int) Math.round(doubleValue)));

如果您只想打印它:

String val = String.format("%.0f", 2.11)
// val == "2"
如果要保留双精度类型但不保留小数:

double val = Math.floor(2.11);
// val == 2.000
如果不关心类型,可以将双精度转换为int:

int val = (int) 2.11;
// val == 2

//double as object
int val = myDouble.integerValue();
签出java中的类型转换

    double asdf2 = 2.11;
    int i = (int)asdf2;
    System.out.println(asdf2);
    System.out.println(i);

    Output:

    2.11`
    2
检查这个答案哇,也许你应该在Integer.valueOf前面加一个“(int)”,以确保…:)