Artikel ini menangani masalah umum untuk menghapuskan sifar yang tidak penting dari rentetan angka dalam bahasa pengaturcaraan yang berbeza. Kami akan meneroka kaedah yang efisien untuk mengendalikan sifar trailing, nol utama, dan gabungan kedua -duanya. Pendekatan yang paling mudah melibatkan menukar rentetan ke nombor terapung dan kemudian kembali ke rentetan. Ini secara automatik menghilangkan sifar trailing selepas titik perpuluhan. Walau bagaimanapun, kaedah ini mungkin memperkenalkan notasi saintifik untuk nombor yang sangat besar atau sangat kecil. Penyelesaian yang lebih mantap menggunakan manipulasi rentetan:
def remove_trailing_zeros(num_str): """Removes trailing zeros from a numeric string. Args: num_str: The input numeric string. Returns: The string with trailing zeros removed, or the original string if no trailing zeros are found. Returns an error message if the input is not a valid numeric string. """ try: float_num = float(num_str) return str(float_num) except ValueError: return "Invalid numeric string" def remove_trailing_zeros_robust(num_str): """Removes trailing zeros from a numeric string without using float conversion. Args: num_str: The input numeric string. Returns: The string with trailing zeros removed, or the original string if no trailing zeros are found. Returns an error message if the input is not a valid numeric string. """ try: if '.' not in num_str: return num_str # No decimal point, nothing to remove integer_part, fractional_part = num_str.split('.') while fractional_part and fractional_part[-1] == '0': fractional_part = fractional_part[:-1] if fractional_part: return integer_part + '.' + fractional_part else: return integer_part except ValueError: return "Invalid numeric string" print(remove_trailing_zeros("123.00")) # Output: 123.0 print(remove_trailing_zeros("123.45")) # Output: 123.45 print(remove_trailing_zeros("123.0")) # Output: 123.0 print(remove_trailing_zeros("1000000000000000000000.00")) #Output: 1e+21 (Scientific Notation) print(remove_trailing_zeros_robust("1000000000000000000000.00")) #Output: 1000000000000000000000 print(remove_trailing_zeros("abc")) # Output: Invalid numeric string
remove_trailing_zeros_robust
Atas ialah kandungan terperinci Keluarkan sifar yang tidak penting dari contoh rentetan angka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!