जावा लाइब्रेरी में अंतर्निहित क्लास है जो इसके लिए ऐसा कर सकता है। यह BigDecimal
है।
यहाँ एक उदाहरण उपयोग है:
BigDecimal number = new BigDecimal("10.2270");
System.out.println(number.stripTrailingZeros().toPlainString());
आउटपुट:
10.227
ध्यान दें: यह BigDecimal
निर्माता है कि एक String
लेता है का उपयोग करने के लिए महत्वपूर्ण है। आप शायद वह नहीं चाहते हैं जो double
लेता है।
यहाँ एक विधि है कि एक Collection<String>
लेने के लिए और लिपटे हटाया अनुगामी शून्य, उपहार के साथ संख्या का एक और Collection<String>
वापस आ जाएगी है।
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);
}
उदाहरण उपयोग:
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);
आउटपुट:
[10, 10, 10.1, 10.227]
का उपयोग कर BigDecimal –
सबसे अच्छा शर्त ऐसी आवश्यकता – vikeng21
के लिए रेगुलर एक्सप्रेशन से प्रस्तावित दो प्रतियों @ScaryWombat इनपुट के रूप में एक 'double' है कोशिश । इस प्रश्न में 'स्ट्रिंग' है। – jdphenix