Rumah > Java > javaTutorial > Keluarkan sifar yang tidak penting dari contoh rentetan angka

Keluarkan sifar yang tidak penting dari contoh rentetan angka

Robert Michael Kim
Lepaskan: 2025-03-07 17:50:02
asal
320 orang telah melayarinya

Mengeluarkan sifar yang tidak penting dari rentetan angka: Panduan Komprehensif

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:

Bagaimanakah saya dapat menghapuskan zeros trailing dari nombor yang diwakili sebagai rentetan dalam python? Manipulasi rentetan langsung mengelakkan potensi overhead dan batasan perwakilan terapung, terutamanya untuk jumlah yang sangat besar yang mungkin menyebabkan notasi saintifik. Pendekatan yang lebih terkawal melibatkan manipulasi rentetan yang serupa dengan contoh python:

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
Salin selepas log masuk
dan trailing nol secara serentak. Walau bagaimanapun, anda boleh menggabungkan

dan

dengan parameter yang sesuai untuk mencapai ini:

remove_trailing_zeros_robust

Kod ini dengan cekap mengendalikan pelbagai senario, termasuk kes dengan hanya sifar atau titik perpuluhan. Ingatlah untuk mengendalikan potensi

jika rentetan input anda mungkin batal atau kosong.

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan