Java kitaplığı, bunun için bunu yapabilen dahili sınıfına sahiptir. BigDecimal
. İşte
bir örnek kullanım şöyledir:
BigDecimal number = new BigDecimal("10.2270");
System.out.println(number.stripTrailingZeros().toPlainString());
Çıktı:
10.227
Not: Bu bir String
alır BigDecimal
yapıcı kullanmak önemlidir. Muhtemelen double
numaralı telefonu istemezsiniz.
İşte
Collection<String>
alıp sarılı sondaki kaldırıldı sıfır, hediye ile diğer numaralar
Collection<String>
dönecektir bir yöntem.
public static Collection<String> stripZeros(Collection<String> numbers) {
if (numbers == null) {
throw new NullPointerException("numbers is null");
}
ArrayList<String> value = new ArrayList<>();
for (String number : numbers) {
value.add(new BigDecimal(number).stripTrailingZeros().toPlainString());
}
return Collections.unmodifiableList(value);
}
Örnek kullanım:
ArrayList<String> input = new ArrayList<String>() {{
add("10.0"); add("10.00"); add("10.10"); add("10.2270");
}};
Collection<String> output = stripZeros(input);
System.out.println(output);
Çıkışlar:
[10, 10, 10.1, 10.227]
BigDecimal –
iyi bahis önerilen kopya @ScaryWombat bu gereksinimi – vikeng21
için normal ifade, girdi olarak bir 'double' sahiptir kullanılarak deneyin . Bu sorunun bir 'String' vardır. – jdphenix