正如标题所示,如果输入例如2.1k
,则它应该等于2100
,如果它是3.7k
,那么它将是3700
,依此类推。我有一些代码如下,我还没有真正尝试过任何事情,只考虑公式如何:
String arg = args[0];
if(arg.contains("k")) {
args[0].replace("k", "000");
}
答案 0 :(得分:3)
你可以检查arg
是否以“k”结尾,如果它确实解析了在“K”之前的每个字符之前的双精度值并乘以1000.像
String arg = "2.1k";
if (arg.endsWith("k")) {
int val = (int) (Double.parseDouble(arg.substring(0, arg.length() - 1))
* 1000);
arg = String.valueOf(val);
}
System.out.println(arg);
输出
2100
答案 1 :(得分:0)
对于k
示例,它将是:
int count = StringUtils.countMatches(arg, "k");//count the amount of k's
double decNumber = Double.parseDouble(arg.replace("k", "");//removes all k's and parse to a double
double finalNumber = decNumber * Math.pow(1000, k);//multiple by 1000^k
这适用于任何数量的k&#39> AFTER 十进制数。
答案 2 :(得分:0)
正确的方法看起来更像是:
String arg = args[0];
if(arg.contains("k")) {
newVal = args[0].replace("k", ""); //just drop the K and be left with a decimal
newVal = parseInt(args[0] * 1000); //New value is whatever was passed in times 1000
}