有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中从“double”类型的值中删除十进制值

我正在调用一个名为“calculateStampDuty”的方法,该方法将返回 物业应支付的印花税金额。百分比计算有效 很好,并返回正确的值“15000.0”。但是,我想将该值显示给 前端用户只需输入“15000”,因此只需删除小数点和任何前面的值 之后如何做到这一点?我的代码如下:

float HouseValue = 150000;
double percentageValue;

percentageValue = calculateStampDuty(10, HouseValue);

private double calculateStampDuty(int PercentageIn, double HouseValueIn){
    double test = PercentageIn * HouseValueIn / 100;
    return test;
}

我尝试了以下方法:

  • 创建将双精度值转换为字符串的新字符串,如下所示:

    String newValue = percentageValue.toString();

  • 我已尝试在String对象上使用“valueOf”方法,如下所示:

    String total2 = String.valueOf(percentageValue);

但是,我无法得到没有小数点的值。有人知道吗 在本例中,如何获得“15000”而不是“15000.0”

谢谢


共 (6) 个答案

  1. # 1 楼答案

    您可以将double值转换为int值。 int x = (int) y其中y是双变量。然后,打印x不会给出小数位数(15000而不是15000.0

  2. # 2 楼答案

    我这样做是为了从double值中删除小数位

    new DecimalFormat("#").format(100.0);
    

    上面的输出是

    100

  3. # 3 楼答案

    您可以使用显式类型转换在一行代码中将doublefloat变量转换为integer

    float x = 3.05
    int y = (int) x;
    System.out.println(y);
    

    输出将是3

  4. # 4 楼答案

    你可以用

    String newValue = Integer.toString((int)percentageValue);
    

    String newValue = Double.toString(Math.floor(percentageValue));
    
  5. # 5 楼答案

    又好又简单。将此代码段添加到您要输出到的内容中:

    String.format("%.0f", percentageValue)
    
  6. # 6 楼答案

    我想试试这个:

    String numWihoutDecimal = String.valueOf(percentageValue).split("\\.")[0];
    

    我已经测试过了,它可以工作,所以它只是从这个字符串转换成你想要的任何类型的数字或变量。你可以这样做

    int num = Integer.parseInt(String.valueOf(percentageValue).split("\\.")[0]);