我知道如何拆分小数值。但我有点困惑如何分割这样的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]);
}
答案 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]);
}