进行高级数字计算? 2.1k等于2100等。?

时间:2016-05-13 19:47:57

标签: java numbers

正如标题所示,如果输入例如2.1k,则它应该等于2100,如果它是3.7k,那么它将是3700,依此类推。我有一些代码如下,我还没有真正尝试过任何事情,只考虑公式如何:

String arg = args[0];
if(arg.contains("k")) {
    args[0].replace("k", "000");
}

3 个答案:

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