如何拆分此值31.07?

时间:2017-11-24 13:27:50

标签: java android

我知道如何拆分小数值。但我有点困惑如何分割这样的31.07或71.008。如果我使用下面这段代码,则值会像31和0.7那样分割

我需要一个解决方案: 31和0.07。我怎样才能解决我的问题?

这里是java代码:

    String decimal_value = String.format("%.2f", update_fare);
           String[] arr = decimal_value.split("\\.");
           if (arr.length == 2) {
               int[] intArr = new int[2];
               String before_decimal = String.valueOf(intArr[0] = Integer.parseInt(arr[0]));
               String after_decimal = String.valueOf(intArr[1] = Integer.parseInt(arr[1]));
               fare_tv.setText(String.valueOf(before_decimal));
               fare_tv_decimal.setText(String.valueOf(after_decimal));
               System.out.println("----------------updated fare intArr[0]---------" + intArr[0]);
               System.out.println("----------------updated fare intArr[1]---------" + intArr[1]);

           }

4 个答案:

答案 0 :(得分:1)

如果A是您的号码,例如 - A = 31.03,

你想把它和31和0.03分成B和C,你可以这样做:

A = 31.03; // your number
B = a%1; // XX.00
C = A-B; // 00.XX

答案 1 :(得分:1)

试试这个

    String value = "31.07";

    String[] values = value.split("\\.");

    if(values.length==2)
    {
         int[] intArr = new int[2];


         String value1 = values[0];
         String value2 = "0."+values[1];

         fare_tv.setText(String.valueOf(value1));
         fare_tv_decimal.setText(String.valueOf(value2));

         intArr[0] = Integer.parseInt(value1);
         intArr[0] = Integer.parseInt(value2);
    }

答案 2 :(得分:1)

假设您只使用正面双打,以下代码可能对您有所帮助:

int total  = (int)update_fare; //gets the whole part
double rem = update_fare - total; //gets the value after the dot

然后,您可以使用适当的格式化程序将它们转换为字符串,如下所示:

 String rem_str = String.format("%.2f", rem);
 String total_str = String.format("%d", total);

但是,在处理负数时要小心使用此技术。您需要根据值的符号更改某些部分。

答案 3 :(得分:-1)

试试这个:

String value = "31.07";

String[] values = value.split("\\.");

if(values.length==2)
    {
    double[] intArr = new double[2];


    String value1 = values[0];
    String value2 = "0."+values[1];

    fare_tv.setText(String.valueOf(value1));
    fare_tv_decimal.setText(String.valueOf(value2));

    intArr[0] = Double.parseDouble(value1);
    intArr[1] = Double.parseDouble(value2);
    System.out.println("----------------updated fare intArr[0]---------" + intArr[0]);
    System.out.println("----------------updated fare intArr[1]---------" + intArr[1]);
}