0

当我执行下面的代码时,我需要一行代码来获取小数点后的数字:

double results = 1500 / 1000;


        txtview.setText("K " + resultsoldk);

我还需要包含提醒的结果。

4

4 回答 4

2

问题是结果

 double results = 1500 / 1000;

1.0,不是1.5,因为你在做整数除法。进行除法时,请确保至少有一个数字是浮点数。例如:

// By adding .0 you make it a double literal instead of an int literal
double results = 1500.0 / 1000;
于 2012-12-04T10:53:30.333 回答
1

您可以使用String.format(...)方法来格式化字符串,如下所示:

txtview.setText(String.format("K %f", resultsoldk));

但是,这不适用于您的情况。当您将两个整数相除时,结果将是一个整数(没有余数)。之后将其转换为双精度(因为您将其分配给双精度),但此时精度已经丢失。在除法之前,您必须至少将其中一个整数转换为双精度数:

double results = (double)1500 / 1000;

或者,如果您使用常量

double results = 1500.0 / 1000;

或者

double results = 1500 / 1000.0;

甚至

double results = 1500.0 / 1000.0;
于 2012-12-04T10:56:05.463 回答
1

您可以使用如下所示的 double 进行投射

  double results = (double)1500 / 1000;

您也可以使用 DecimalFormat 格式化结果

DecimalFormat df = new DecimalFormat("0.00##");
String formattedResult=df.format(results);
于 2012-12-04T10:53:14.243 回答
0
String strResult = Double.toString(d);
strResult = strResult.replaceAll("\\d?\\.", "");

不知道我是否明白,但如果你想要的是点后的数字,那么你可以使用这个正则表达式。

于 2012-12-04T11:01:02.443 回答