【发布时间】:2020-04-19 21:33:50
【问题描述】:
我正在编写一个函数,例如将 1000 替换为 1K 等等。我不想在点之后显示"00",所以我拆分了变量,如果第二部分等于“00”,它只显示第一部分。
这项工作在运行 Android 10 的模拟器上按预期工作。在我的真实设备(P4XL、Android 10)上,它崩溃并显示标题中显示的行。
我知道这个函数是导致崩溃的原因,因为当我将它注释掉时,它也可以在我的真实设备上运行,只是没有正确显示数字。
为什么要这样做?
public String number_uppercase(int input){
double input_double = (double) input;
if (input < 1000){
number_uppercase_cache = df.format(input_double);
number_uppercase_ending = "";
}
if (input >= 1000 && input < 1000000){
number_uppercase_cache = df.format(input_double/1000);
number_uppercase_ending = " K";
}
if (input >= 1000000 && input < 1000000000){
number_uppercase_cache = df.format(input_double/1000000);
number_uppercase_ending = " mio";
}
if (input >= 1000000000){
number_uppercase_cache = df.format(input_double/1000000000);
number_uppercase_ending = " mrd";
}
number_uppercase_split_part_1 = number_uppercase_cache.split("\\.")[0];
number_uppercase_split_part_2 = number_uppercase_cache.split("\\.")[1];
if(number_uppercase_split_part_2.equals("00")){
number_uppercase_output = number_uppercase_split_part_1 + number_uppercase_ending;
} else {
number_uppercase_output = number_uppercase_split_part_1 + "." + number_uppercase_split_part_2 + number_uppercase_ending;
}
return number_uppercase_output;
}
【问题讨论】:
-
一直都是,我看不出它变成逗号的原因。
-
Where is dot here? 错误很明显 - split 返回一个元素数组
-
为什么不返回两个元素? [0] 在点之前和 [1] 在点之后.. 为什么这个错误只发生在真实设备上而不发生在模拟器中?
标签: android variables split android-emulator