当我执行下面的代码时,我需要一行代码来获取小数点后的数字:
double results = 1500 / 1000;
txtview.setText("K " + resultsoldk);
我还需要包含提醒的结果。
当我执行下面的代码时,我需要一行代码来获取小数点后的数字:
double results = 1500 / 1000;
txtview.setText("K " + resultsoldk);
我还需要包含提醒的结果。
问题是结果
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;
您可以使用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;
您可以使用如下所示的 double 进行投射
double results = (double)1500 / 1000;
您也可以使用 DecimalFormat 格式化结果
DecimalFormat df = new DecimalFormat("0.00##");
String formattedResult=df.format(results);
String strResult = Double.toString(d);
strResult = strResult.replaceAll("\\d?\\.", "");
不知道我是否明白,但如果你想要的是点后的数字,那么你可以使用这个正则表达式。