Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menukar rentetan kepada nombor dalam javascript

Bagaimana untuk menukar rentetan kepada nombor dalam javascript

青灯夜游
青灯夜游asal
2021-10-15 11:55:5461154semak imbas

Kaedah penukaran: 1. Gunakan operator seperti "-", "*", "/", "%", " ", "--" 2. Gunakan pernyataan "Nombor (nilai)". ; 3. Gunakan pernyataan "parseInt(stringNum)" 4. Gunakan pernyataan "parseFloat(stringNum)".

Bagaimana untuk menukar rentetan kepada nombor dalam javascript

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

javascript menukar rentetan kepada nombor

Kaedah 1: Gunakan -, *, /, %, , -- dan pengendali lain

JavaScript akan secara automatik menukar rentetan kepada nombor, dan rentetan yang tidak boleh ditukar kepada nombor akan ditukar kepada NaN. Contohnya:

alert("30"/5);   //除运算,结果为:6
alert("15"-5);   //减运算,结果为:10
alert("20"*"a"); //乘运算,结果为:NaN
alert("20"%"3"); //取模运算,结果为:2
var num1 = "6";
var num2 = "6";
var num3 = "a";
alert(++num1);  //将字符串转换为数字再进行++运算,结果为:7
alert(--num2);  //将字符串转换为数字再进行--运算,结果为:5
alert(++num3);  //字符串无法转换为数字,结果为:NaN

Kaedah 2: Gunakan fungsi Number()

Fungsi Number() boleh menukar parameter menjadi nombor

Gunakan format seperti berikut:

Number(value)

Number() melakukan penukaran keseluruhan nilai parameter Apabila nilai parameter mengandungi simbol yang tidak boleh ditukar kepada nombor di mana-mana sahaja , penukaran gagal NaN ini akan dikembalikan jika , jika tidak nombor yang ditukar akan dikembalikan.

Nombor() mengikut peraturan berikut apabila menukar parameter kepada nombor:

  • Jika parameter hanya mengandungi nombor, ia akan ditukar kepada nombor perpuluhan, mengabaikan pendahuluan 0 dan ruang hadapan; jika nombor didahului dengan -, - akan dikekalkan dalam hasil penukaran; parameter mengandungi nombor titik terapung yang sah , akan ditukar kepada nombor titik terapung yang sepadan, mengabaikan ruang hadapan dan jika nombor didahului oleh -, - akan dikekalkan dalam hasil penukaran jika nombor itu didahului; tanda akan dipadamkan selepas penukaran;

  • Jika parameter mengandungi nombor perenambelasan yang sah, ia akan ditukar kepada nombor perpuluhan dengan saiz yang sepadan; >

    Jika parameter ialah rentetan kosong, ia akan ditukar kepada 0; kepada 0;
  • Jika parameter adalah nol, ia akan ditukarkan ialah 0; kepada NaN;
  • Jika parameter ialah objek Tarikh, ia akan ditukar kepada 1 dari tahun 1970 Bilangan milisaat dari 1 bulan hingga apabila penukaran dilakukan; >
  • Jika parameter ialah fungsi, objek tatasusunan yang mengandungi lebih daripada dua elemen dan objek lain kecuali objek Tarikh, ia akan ditukar kepada NaN

  • Jika terdapat simbol khas atau aksara bukan angka selain daripada ruang, dan - di hadapan parameter, atau simbol khas atau aksara bukan angka termasuk ruang, dan - disertakan di tengah aksara parameter, akan ditukar kepada NaN.

  • Contoh penukaran:
  • Daripada contoh di atas, kita juga dapat melihat bahawa Number() ditukar secara keseluruhan Sebarang aksara haram yang terkandung di mana-mana tempat akan mengakibatkan Penukaran tidak boleh berjaya. Perbezaan antara dua fungsi yang diperkenalkan seterusnya dan Number() ialah penukaran dilakukan sedikit demi sedikit dari kiri ke kanan Apabila sebarang bit tidak boleh ditukar, penukaran berhenti serta-merta dan nilai yang berjaya ditukar dikembalikan.
  • Kaedah 3: Gunakan fungsi parseInt()

  • Fungsi parseInt() boleh menukar parameter kepada integer

    Formatnya adalah seperti berikut :

Parameter stringNum ialah rentetan yang perlu ditukar kepada integer parameter radix ialah nombor antara 2 dan 36, menunjukkan nombor asas parameter stringNum itu boleh ditinggalkan apabila nilainya ialah 10.

Fungsi parseInt() adalah untuk menghuraikan parameter rentetan stringNum dengan radix sebagai asas kepada nombor perpuluhan. Jika rentetan stringNum tidak bermula dengan aksara undang-undang, NaN akan dikembalikan jika aksara haram ditemui semasa proses penghuraian, penghuraian akan berhenti serta-merta dan nilai yang dihuraikan akan dikembalikan.

alert(Number("0010"));  //去掉两个前导0,结果为:10
alert(Number("+010"));  //去掉前导0和+,结果为:10
alert(Number("-10"));  //转换后保留“-”号,结果为:-10
alert(Number(''));      //空字符串的转换结果为:0
alert(Number(true));   //布尔值true的转换结果为:1
alert(Number(null));   //null值的转换结果为:0
var d = new Date();      //创建一个Date对象
alert(Number(d));     //转换Date对象,结果为1970.1.1至执行转换时的毫秒数:1511351635179
alert(Number("100px"));   //参数中包含了不能转换为数字的字符px,结果为:NaN
alert(Number("100 01"));  //参数中包含了空格,导致整个参数不能转换,结果为:NaN
alert(Number("100-123")); //参数中包含了“-”,导致整个参数不能转换,结果为:NaN
var a;                   //声明变量
alert(Number(a));     //变量a没有赋值,因而a的值为undefined,转换undefined的结果为:NaN
var fn = function (){alert(1);}; //创建一个函数对象
alert(Number(fn));     //转换函数,结果为:NaN
alert(Number(window)); //转换window对象,结果为:NaN
parseInt() mengikut peraturan berikut semasa menghuraikan rentetan sebagai integer:

Apabila menghuraikan rentetan, ruang sebelum dan selepas rentetan akan diabaikan; -, - akan dikekalkan dalam hasil penukaran; jika nombor didahului dengan, tanda akan dipadamkan selepas penukaran; dan - atau Untuk aksara bukan angka selain daripada a~f (atau A~F), rentetan tidak akan dihuraikan dan hasil yang dikembalikan ialah NaN

mengandungi ruang, , - dan titik perpuluhan "." dan simbol khas lain atau aksara bukan angka, penghuraian akan berhenti apabila aksara ini ditemui dan mengembalikan hasil yang dihuraikan; , hasil pulangan ialah NaN.

parseInt(stringNum,[radix])

Contoh penukaran:

Daripada contoh di atas kita dapat lihat bahawa apabila parseInt() menghuraikan nombor titik terapung, bahagian perpuluhan data akan dipotong . Anda perlu menggunakan parseFloat(), yang akan diperkenalkan di bawah, tetapi bukan parseInt().

    Kaedah 4: Gunakan fungsi parseFloat()
  • Fungsi parseFloat() boleh menukar parameter kepada nombor titik terapung
  • Formatnya ialah seperti berikut:

  • Parameter stringNum ialah rentetan yang perlu dihuraikan kepada jenis titik terapung.
  • parseFloat() 的作用是将首位为数字的字符串转解析成浮点型数。若 stringNum 字符串不是以合法的字符开头,则返回 NaN;解析过程中如果遇到不合法的字符,将马上停止解析,并返回已经解析的值。

    parseFloat() 在解析字符串为整数时,遵循以下规则:

    • 解析字符串时,会忽略字符串前后的空格;如果字符串前面为-,-会保留在转换结果中;如果数字前面为+,转换后将删掉+号;如果字符串前面为小数点.转换结果会在小数点前面添加 0;

    • 如果字符串前面为除空格、+、-和。以外的特殊符号,字符串将不会被解析,返回结果为 NaN;

    • 在字符串中包含了空格、+和-等特殊符号或非数字的字符时,解析将在遇到这些字符时停止,并返回已解析的结果;

    • 在字符串中包含两个以上为小数点时,解析到第二个小数点时将停止解析,并返回已解析的结果;

    • 如果字符串是空字符串,返回结果为 NaN。

    转换示例:

    alert(parseFloat("312.456"));//结果为:312.456
    alert(parseFloat("-3.12"));//字符串前面的“-”将保留,结果为:-3.12
    alert(parseFloat("+3.12"));//字符串前面的“-”将保留,结果为:3.12
    alert(parseFloat(".12"));//在小数点前面添加0,结果为:0.12
    alert(parseFloat("  3.12"));//截掉字符串前面的空格,结果为:3.12
    alert(parseFloat("312.4A56"));//字符串中包含非数字字符A,解析到A时停止,结果为:312.4
    alert(parseFloat("31 2.4A56"));//字符串中包含空格,解析到空格时停止,结果为:31
    alert(parseFloat("31.2.5"));//字符串中包含两个小数点,解析到第二个小数点时停止,结果为:31.2
    alert(parseFloat("a312.456"));//字符串前面为非数字字符a,解析无法进行,结果为:NaN

    【推荐学习:javascript高级教程

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada nombor dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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