如何格式化结果以显示小数点后的数字

时间:2012-12-04 10:47:21

标签: java number-formatting

我需要一行代码,用于在执行时获取小数位后的数字 以下代码:

double results = 1500 / 1000;


        txtview.setText("K " + resultsoldk);

我还需要将结果包含在提醒中。

4 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

您可以使用下面的双重投射

  double results = (double)1500 / 1000;

您也可以使用DecimalFormat

格式化结果
DecimalFormat df = new DecimalFormat("0.00##");
String formattedResult=df.format(results);

答案 2 :(得分:1)

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

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

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

double results = (double)1500 / 1000;

或者,如果你使用常量

double results = 1500.0 / 1000;

double results = 1500 / 1000.0;

甚至

double results = 1500.0 / 1000.0;

答案 3 :(得分:0)

String strResult = Double.toString(d);
strResult = strResult.replaceAll("\\d?\\.", "");

不知道我是否得到它,但如果您想要的是点后面的数字,那么您可以使用此正则表达式。