Java小数点

时间:2014-03-11 05:09:04

标签: java decimal point

我的问题是:

如何让程序打印小数点前的位数以及数字后面的位数。

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的结果。

4 个答案:

答案 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

我希望这会有所帮助。