我需要一行代码,用于在执行时获取小数位后的数字 以下代码:
double results = 1500 / 1000;
txtview.setText("K " + resultsoldk);
我还需要将结果包含在提醒中。
答案 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?\\.", "");
不知道我是否得到它,但如果您想要的是点后面的数字,那么您可以使用此正则表达式。