Dengan Python, bagaimana Anda menemukan jumlah digit dalam bilangan bulat? Show Jika Anda ingin panjang bilangan bulat seperti dalam jumlah digit dalam bilangan bulat, Anda selalu dapat mengonversinya menjadi string seperti Tanpa konversi ke string
Untuk juga menangani angka nol dan negatif
Anda mungkin ingin menempatkan itu dalam suatu fungsi :) Inilah beberapa tolok ukur.
Semua solusi math.log10 akan memberi Anda masalah.math.log10 cepat tetapi memberikan masalah ketika nomor Anda lebih besar dari 999999999999997. Ini karena float memiliki terlalu banyak .9s, menyebabkan hasil untuk mengumpulkan. Solusinya adalah menggunakan metode penghitung sementara untuk angka di atas ambang batas itu. Untuk menjadikan ini lebih cepat, buat 10 ^ 16, 10 ^ 17 seterusnya dan simpan sebagai variabel dalam daftar. Dengan begitu, ini seperti pencarian tabel.
Python Dalam Python 3,
Jika,
seperti jawaban lain menyarankan, Anda berpikir tentang beberapa representasi string dari nilai integer, maka ambil Biarkan
Perhatikan bahwa ini akan memberikan jawaban yang benar untuk + ve integer <10e15. Di luar batas ketepatan jenis kembalinya Terima kasih kepada @SetiVolkylany karena telah membawa perhatian saya ke batasan ini. Sungguh menakjubkan betapa solusi yang tampaknya benar memiliki peringatan dalam detail implementasi. Nah, tanpa mengkonversi ke string saya akan melakukan sesuatu seperti:
Rekursi Minimalis FTW Seperti yang disebutkan pengguna sayang @Calvintwr, fungsi Berdasarkan Gist dan answer pengguna yang terhormat ini @Calvintwr
Saya mengujinya pada angka dengan panjang hingga 20 (inklusif) dan baik-baik saja. Itu harus cukup, karena angka integer panjang maks pada sistem 64-bit adalah 19 (
Semua contoh kode diuji dengan Python 3.5 Untuk anak cucu, tidak diragukan lagi sejauh ini solusi paling lambat untuk masalah ini:
Sudah beberapa tahun sejak pertanyaan ini diajukan, tetapi saya telah menyusun tolok ukur beberapa metode untuk menghitung panjang bilangan bulat.
(fungsi libc memerlukan beberapa pengaturan, yang belum saya sertakan)
Inilah hasilnya:
(Penafian: fungsi dijalankan pada input 1 hingga 1.000.000) Berikut adalah hasil untuk
Seperti yang Anda lihat,
Ini dapat dilakukan untuk bilangan bulat dengan cepat dengan menggunakan:
Yang mendapatkan panjang string dari nilai absolut "1234567890"
Jika Anda ingin itu berfungsi untuk float, Anda dapat menggunakan salah satu dari berikut ini:
Untuk referensi di masa mendatang.
Dengan asumsi Anda meminta angka terbesar yang dapat Anda simpan dalam bilangan bulat, nilainya tergantung pada implementasi. Saya menyarankan agar Anda tidak berpikir seperti itu ketika menggunakan python. Bagaimanapun, nilai yang cukup besar dapat disimpan dalam 'integer' python. Ingat, Python menggunakan mengetik bebek! Edit: Saya memberikan jawaban sebelum klarifikasi bahwa penanya menginginkan jumlah digit. Untuk itu, saya setuju dengan metode yang disarankan oleh jawaban yang diterima. Tidak ada lagi yang ditambahkan! Format dalam notasi ilmiah dan cabut eksponen:
Saya tidak tahu tentang kecepatan, tapi itu sederhana. Harap perhatikan jumlah digit signifikan setelah desimal ("5" di ".5e" dapat menjadi masalah jika itu membulatkan bagian desimal dari notasi ilmiah ke angka lain. Saya menetapkannya secara besar-besaran, tetapi dapat mencerminkan panjang jumlah terbesar yang Anda ketahui. Hitung jumlah digit tanpa konversi bilangan bulat ke string:
Apa itu integer pada Python?Tipe data integer adalah tipe data numerik yang menampung bilangan bulat. Contohnya bilangan 1,2,3 dan seterusnya. Sehingga setiap variabel yang memiliki nilai bilangan bulat, maka ia akan dikategorikan sebagai integer. Dalam bahasa Python, panjang dari data integer dibatasi oleh besarnya memori yang tersedia.
Apa itu string dan integer Python?String merupakan tipe untuk objek berupa teks (kata/kalimat). Untuk objek yang berupa angka, digunakan tipe integer dan float. Integer untuk objek bilangan bulat baik positif maupun negatif, sedangkan float untuk objek bilangan desimal positif dan negatif.
Apa perbedaan string dan integer?String dalam pemrograman komputer adalah sebuah deret simbol. Tipe data string adalah tipe data yang di gunakan untuk menyimpan barisan karakter. integer untuk merujuk kepada tipe data apapun yang merepresentasikan bilangan bulat, atau beberapa bagian dari bilangan bulat, di sebut juga sebagai lntegral Data Type.
Apakah penggunaan tipe data integer pada Python akan memerlukan tanda kutip dua?Sedangkan untuk angka (integer) dan boolean tidak perlu diapit dengan tanda petik.
|