Java 进行高级数字计算?2.1k等于2100等。。?
如标题所示,如果输入值为Java 进行高级数字计算?2.1k等于2100等。。?,java,numbers,Java,Numbers,如标题所示,如果输入值为2.1k,则应等于2100,如果输入值为3.7k,则应为3700,依此类推。我有一些代码如下,我没有真正尝试过任何东西,只是在思考公式是如何实现的: String arg = args[0]; if(arg.contains("k")) { args[0].replace("k", "000"); } 对于k示例,它将是: int count = StringUtils.countMatches(arg, "k");//count the amount of k
2.1k
,则应等于2100
,如果输入值为3.7k
,则应为3700
,依此类推。我有一些代码如下,我没有真正尝试过任何东西,只是在思考公式是如何实现的:
String arg = args[0];
if(arg.contains("k")) {
args[0].replace("k", "000");
}
对于
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。对于
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。正确的方法看起来更像:
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
}
正确的方法更像是:
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
}
您可以检查
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
您可以检查
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
嗯,您发布的代码片段添加了太多的零,而且它也没有删除小数点。“…我没有真正尝试过任何东西…”-您应该这样做,如果遇到问题,请回来询问您遇到的具体困难。
.replace
不会更改字符串,它会返回修改后的字符串。嗯,您发布的代码片段添加了太多的零,也没有删除小数点。“…我没有真正尝试过任何东西…”-您应该这样做,如果遇到问题,请回来询问您遇到的具体困难。。replace
不会更改字符串,它返回修改后的字符串,我想我的答案应该是JavaScripty,而不是Java。但是你明白了,字符串是不可变的replace
创建新字符串,而不影响旧字符串。我想我的答案应该更符合JavaScripty而不是Java。但是你明白了,字符串是不可变的<代码>替换创建新字符串,而不影响旧字符串。