Diberikan representasi string dari angka, bagaimana saya bisa mengubahnya untuk number
mengetikkan TypeScript?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
typescript
Paul0515
sumber
sumber
console.log(typeof <number><any>"1", typeof Number("1"))
akan dicetakstring number
.Jawaban:
Persis seperti di JavaScript , Anda dapat menggunakan
parseInt
atauparseFloat
fungsi, atau hanya menggunakan unary+
Operator:Semua teknik yang disebutkan akan memiliki pengetikan yang benar dan dengan benar akan mem-parsing bilangan bulat desimal sederhana seperti
"123"
, tetapi akan berperilaku berbeda untuk berbagai kasus lainnya, yang mungkin diharapkan, (seperti"123.45"
) dan kasus sudut (sepertinull
).Tabel diambil dari jawaban ini
sumber
Cara naskah untuk melakukan ini adalah:
seperti yang dijawab di sini: https://stackoverflow.com/a/23440948/2083492
sumber
isNaN
fungsi ini.let a = Number('x') || 0;
-Number('x')
akan kembaliNaN
, yang merupakan "falsey". Oleh karena itu,a
akan ditugaskan0.
Jauh lebih bersih dan bisa dibilang (sedikit) lebih cepat daripada menggunakan pernyataan ternary dan parsing dua kali.Untuk sesama pengguna Angular kami:
Di dalam templat ,
Number(x)
danparseInt(x)
melempar kesalahan, dan+x
tidak memiliki efek. Pengecoran yang valid adalahx*1
ataux/1
.sumber
Number
tidak dalam lingkup evaluasi. Anda dapat menulisclass MyComponent { Number = Number; }
untuk menggunakannya.Seperti yang ditunjukkan oleh jawaban lain di sini, ada beberapa cara untuk melakukan konversi:
Saya ingin menyebutkan satu hal lagi
parseInt
.Saat menggunakan
parseInt
, masuk akal untuk selalu melewati parameter radix . Untuk konversi desimal, yaitu10
. Ini adalah nilai default untuk parameter, itulah sebabnya mengapa bisa dihilangkan. Untuk biner, ini adalah2
dan16
untuk heksadesimal. Sebenarnya, setiap radix antara dan termasuk 2 dan 36 karya.The
parseInt
fungsi, baik, mem-parsing string untuk mengkonversikannya ke nomor. Dalam beberapa implementasi JS,parseInt
parsing nol memimpin sebagai oktal:Fakta bahwa kode menjadi lebih jelas adalah efek samping yang bagus dari menentukan parameter radix.
Sejak
parseFloat
hanya mem-parsing ekspresi numerik dalam radix 10, tidak perlu untuk parameter radix di sini.Lebih lanjut tentang ini:
sumber
Menguraikan apa yang dikatakan Ryan, TypeScript merangkul idiom-idiom JavaScript secara umum.
Semua detail mendalam yang menarik di Konversi Jenis JavaScript .
sumber
Anda dapat mengikuti salah satu dari cara berikut.
sumber
Konversi string ke angka:
Dalam naskah, kami mengonversi string ke angka dengan cara berikut:
ParseInt()
: Fungsi ini membutuhkan 2 argumen, yang pertama adalah string untuk diuraikan. Yang kedua adalah radix (basis dalam sistem angka matematika, misalnya 10 untuk desimal dan 2 untuk biner). Kemudian mengembalikan angka integer, jika karakter pertama tidak dapat dikonversi menjadi angka,NaN
akan dikembalikan.ParseFloat()
: Mengambil sebagai argumen nilai yang ingin kita uraikan, dan mengembalikan angka floating point. Jika nilai tidak dapat dikonversi ke angka,NaN
dikembalikan.+
operator: Operator ketika digunakan dengan tepat dapat memaksa nilai string menjadi angka.Contoh:
Yang mana untuk digunakan?
ParseInt()
saat Anda ingin string dikonversi menjadi integer . Namun, tipe data masih float, karena semua nilai angka adalah nilai floating point di TS . Juga gunakan metode ini ketika Anda perlu menentukan radix dari nomor yang ingin Anda parsing.ParseFloat()
saat Anda perlu mengurai string menjadi angka floating point .+
operator sebelum string untuk memaksa menjadi nomor floating point . Keuntungan dari ini adalah bahwa sintaksinya sangat pendek.sumber
Cara termudah adalah dengan menggunakan + strVal atau Number (strVal)
Contoh:
sumber
Ada fungsi inbuilt seperti
parseInt()
,parseFloat()
danNumber()
di ScriptScript, Anda bisa menggunakannya.sumber
Panggil fungsi dengan => convertstring ('10 .00 ')
parseFloat (string) => Dapat digunakan untuk mengonversi ke float, toFixed (4) => ke berapa banyak desimal
parseInt (str) => Dapat digunakan untuk mengonversi menjadi integer
sumber
Alat Konversi Nomor Online
Pengonversi Angka
sumber
Ada tiga cara
sumber
Ada banyak dari Anda mengalami masalah untuk mengkonversi tipe data yang sulit untuk dipecahkan dalam situasi pemrograman ionik, karena bahasa ini sangat baru, di sini saya akan merinci instruksi bagi pengguna untuk mengetahui cara mengkonversi tipe data ionik menjadi data string. ketik bilangan bulat.
Dalam bahasa pemrograman seperti java, php, c, c ++, ... semua dapat memindahkan data dengan mudah, maka secara ion juga dapat membuat konversi data bagi kita juga merupakan cara yang mudah tidak terkecuali dalam bahasa pemrograman lain.
sumber
jika Anda berbicara tentang jenis saja, seperti kata orang lain, parseInt () dll akan mengembalikan jenis yang benar. Juga, jika karena alasan apa pun nilainya bisa berupa angka atau string dan Anda tidak ingin memanggil parseInt (), typeof ekspresi juga akan dilemparkan ke jenis yang benar:
sumber
Ini adalah versi modifikasi dari fungsi StrToNumber. Seperti sebelumnya,
Tanggapan ini adalah solusi yang mungkin lebih cocok untuk pertanyaan awal daripada posting saya sebelumnya.
sumber
naskah perlu tahu bahwa kita
var a
akan menjadiNumber || String
sumber
Anda selalu dapat menggunakan opsi pemeran. Pertama, Anda harus mengubah objek Anda menjadi tipe "tidak dikenal" dan kemudian melemparkannya ke jenis objek yang diharapkan.
sumber
console.log(typeof <number><unknown>"1", typeof Number("1"))
akan dicetakstring number
.