我的问题是:
如何让程序打印小数点前的位数以及数字后面的位数。
public class Strings {
public static void main(String args[])
{
double number = 17.0/3;
DecimalFormat number_format = new DecimalFormat("#.###");
System.out.println(number);
String formatted_string = number_format.format(number);
System.out.println(formatted_string);
}
}
我需要小数点前的整数数
我需要获得1和3的结果。
答案 0 :(得分:1)
小数点前的位数 - DecimalFormat#setMaximumIntegerDigits
完成工作 -
double number = (double)17/3;
java.text.DecimalFormat number_format = new java.text.DecimalFormat("#.###");
number_format.setMaximumIntegerDigits(0);
System.out.println(number);
String formatted_string = number_format.format(number);
System.out.println(formatted_string);
结果:
5.666666666666667
0.667
答案 1 :(得分:0)
或更简单的方式
double d = 17.0/3;
System.out.format("%1.2f", d);
答案 2 :(得分:0)
试试这个
double d = 15.0/4; // Assuming a number
String ds = String.valueOf(d); // converting it into string (it will be 3.75)
String arr[] = ds.split("\\D"); // splitting by non number charecter (in our case its dot)
// So array containts ["3", "75"] strings
System.out.println("Before Decimal point: "+ arr[0].length()); // length gives number of digits
System.out.println("After Decimal point: "+ arr[1].length());
答案 3 :(得分:-1)
最简单的方法是将数字转换为字符串,然后根据'。'拆分字符串。分隔器。然后用“”分割第一个数组元素。这个数组的长度可以给你答案。
// number = some_number.some_more_numbers;
String value = number + ""; // convert to string
String[] parts = value.split(".");
String[] numbers = parts[0].split("");
int length = numbers.length; // Gives number of individual numbers before decimal point
我希望这会有所帮助。