我有一些整数值,例如 1447948,21163176,95999 ,我想像这样使它们:
如何使用Java做到这一点?
答案 0 :(得分:4)
数学是你的朋友。
int magnitude = (int) Math.pow(10, Math.log10(n) - 1)
int o = (int) Math.floor(n / magnitude) * magnitude
其中n
是输入数字,o
是输出数字。
答案 1 :(得分:2)
由于四舍五入是从右边算起的,您不能使用它,您可以从字符串传递并使用基本的正则表达式用0
替换非两位的第一位数字:
int val = 1447948;
int res = Integer.valueOf((""+val).replaceAll("(?<=\\d{2})\\d", "0"));
// res : 1400000
(?<=\\d{2})\\d
匹配前两位的数字
答案 2 :(得分:1)
您可以通过将其视为字符串来处理任意数字:
int number = 1447948;
String number1 = String.valueOf(number);
String[] split = number1.split("");
StringBuilder number2 = new StringBuilder();
for (int i = 0; i < split.length; i++) {
if(i > 1)
number2.append("0");
else
number2.append(split[i]);
}
int result = Integer.parseInt(number2.toString());
System.out.println(result);