除两位数外,整型数全部归零-Java
Except two digits,make all the digits of integer to zero-Java
我有一些整数值,例如 1447948,21163176,95999,我想让它们变成这样:
- 1447948--> 1400000
- 21163176-->21000000
- 95999-->95000
如何使用 java 来实现?
您可以将任何数字视为字符串来执行此操作:
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);
数学是你的朋友。
int magnitude = (int) Math.pow(10, Math.log10(n) - 1)
int o = (int) Math.floor(n / magnitude) * magnitude
其中 n
是输入数字,o
是输出数字。
因为四舍五入是从右数开始的,你不能使用它,你可以从字符串传递并使用基本的正则表达式将非 2 的第一个数字替换为 0
:
int val = 1447948;
int res = Integer.valueOf((""+val).replaceAll("(?<=\d{2})\d", "0"));
// res : 1400000
(?<=\d{2})\d
匹配前面有两位数字的数字
我有一些整数值,例如 1447948,21163176,95999,我想让它们变成这样:
- 1447948--> 1400000
- 21163176-->21000000
- 95999-->95000
如何使用 java 来实现?
您可以将任何数字视为字符串来执行此操作:
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);
数学是你的朋友。
int magnitude = (int) Math.pow(10, Math.log10(n) - 1)
int o = (int) Math.floor(n / magnitude) * magnitude
其中 n
是输入数字,o
是输出数字。
因为四舍五入是从右数开始的,你不能使用它,你可以从字符串传递并使用基本的正则表达式将非 2 的第一个数字替换为 0
:
int val = 1447948;
int res = Integer.valueOf((""+val).replaceAll("(?<=\d{2})\d", "0"));
// res : 1400000
(?<=\d{2})\d
匹配前面有两位数字的数字