Cara menggunakan string to number javascript

Cara menggunakan string to number javascript


Diberikan representasi string dari angka, bagaimana saya bisa mengubahnya untuk numbermengetikkan TypeScript?

var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;



Jawaban:


Persis seperti di JavaScript , Anda dapat menggunakan parseIntatau parseFloatfungsi, atau hanya menggunakan unary +Operator:

var x = "32";
var y: number = +x;

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 (seperti null).

Cara menggunakan string to number javascript
Tabel diambil dari jawaban ini








Untuk sesama pengguna Angular kami:

Di dalam templat , Number(x)dan parseInt(x)melempar kesalahan, dan +xtidak memiliki efek. Pengecoran yang valid adalah x*1atau x/1.




Seperti yang ditunjukkan oleh jawaban lain di sini, ada beberapa cara untuk melakukan konversi:

Number('123');
+'123';
parseInt('123');
parseFloat('123.45')

Saya ingin menyebutkan satu hal lagi parseInt.

Saat menggunakan parseInt, masuk akal untuk selalu melewati parameter radix . Untuk konversi desimal, yaitu 10. Ini adalah nilai default untuk parameter, itulah sebabnya mengapa bisa dihilangkan. Untuk biner, ini adalah 2dan 16untuk heksadesimal. Sebenarnya, setiap radix antara dan termasuk 2 dan 36 karya.

parseInt('123')         // 123 (don't do this)
parseInt('123', 10)     // 123 (much better)

parseInt('1101', 2)     // 13
parseInt('0xfae3', 16)  // 64227

The parseIntfungsi, baik, mem-parsing string untuk mengkonversikannya ke nomor. Dalam beberapa implementasi JS, parseIntparsing nol memimpin sebagai oktal:

Meskipun berkecil hati oleh ECMAScript 3 dan dilarang oleh ECMAScript 5, banyak implementasi menafsirkan string numerik yang dimulai dengan awalan 0 sebagai oktal. Berikut ini mungkin memiliki hasil oktal, atau mungkin memiliki hasil desimal. Selalu tentukan radix untuk menghindari perilaku yang tidak dapat diandalkan ini.

- MDN

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:

  • Mengapa kita perlu menggunakan radix? (SO SO)
  • SO Menjawab "Apa perbedaan antara parseInt () dan Number ()?"




Menguraikan apa yang dikatakan Ryan, TypeScript merangkul idiom-idiom JavaScript secara umum.

var n = +"1"; // the unary + converts to number
var b = !!"2"; // the !! converts truthy to true, and falsy to false
var s = ""+3; // the ""+ converts to string via toString()

Semua detail mendalam yang menarik di Konversi Jenis JavaScript .


Anda dapat mengikuti salah satu dari cara berikut.

var str = '54';

var num = +str; //easy way by using + operator
var num = parseInt(str); //by using the parseInt operation 


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:

/*    parseInt   */

// note that a whole number is returned, so it will round the number
console.log(parseInt('51.023124'));

// parseInt will 'cut off' any part of the string which is not a number
console.log(parseInt('5adfe1234'));

// When the string starts with non number NaN is returned
console.log(parseInt('z123'));

console.log('--------');

/*    parseFloat   */

// parses the string into a number and keeping the precision of the number
console.log(typeof parseFloat('1.12321423'));

// parseFloat will 'cut off' any part of the string which is not a number
console.log(parseFloat('5.5abc'));

console.log('--------');

/*   + operator   */

let myString = '12345'

console.log(typeof +myString);

let myOtherString = '10ab'

// + operator will not cut off any 'non number' string part and will return NaN
console.log(+myOtherString);

Yang mana untuk digunakan?

  1. Gunakan 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.
  2. Gunakan ParseFloat()saat Anda perlu mengurai string menjadi angka floating point .
  3. Anda dapat menggunakan +operator sebelum string untuk memaksa menjadi nomor floating point . Keuntungan dari ini adalah bahwa sintaksinya sangat pendek.


Cara termudah adalah dengan menggunakan + strVal atau Number (strVal)

Contoh:

let strVal1 = "123.5"
let strVal2 = "One"
let val1a = +strVal1
let val1b = Number(strVal1)
let val1c = parseFloat(strVal1)
let val1d = parseInt(strVal1)
let val1e = +strVal1 - parseInt(strVal1)
let val2a = +strVal2

console.log("val1a->", val1a) // 123.5
console.log("val1b->", val1b) // 123.5
console.log("val1c->", val1c) // 123.5
console.log("val1d->", val1d) // 123
console.log("val1e->", val1e) // 0.5
console.log("val2a->", val2a) // NaN


Ada fungsi inbuilt seperti parseInt(), parseFloat()dan Number()di ScriptScript, Anda bisa menggunakannya.


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

convertstring(string){
    let number_parsed: any = parseFloat(string).toFixed(4)
    return number_parsed
}


var myNumber: number = 1200;
//convert to hexadecimal value
console.log(myNumber.toString(16)); //will return  4b0
//Other way of converting to hexadecimal
console.log(Math.abs(myNumber).toString(16)); //will return  4b0
//convert to decimal value
console.log(parseFloat(myNumber.toString()).toFixed(2)); //will return  1200.00

Alat Konversi Nomor Online

Pengonversi Angka


Ada tiga cara

 let a = + '12'; 
 let b = parseInt('12' , 10); // 10 means decimal number
 let c = Number('12');


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.

this.mPosition = parseInt("");


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:

function f(value:number|string){
  if(typeof value==='number'){
   // value : number
  }else {
   // value : string
  }
}


Ini adalah versi modifikasi dari fungsi StrToNumber. Seperti sebelumnya,

  1. Ini memungkinkan tanda opsional muncul di depan atau di belakang nilai numerik.
  2. Ia melakukan pemeriksaan untuk memverifikasi bahwa hanya ada satu tanda di kepala atau ujung tali.
  3. Jika kesalahan terjadi, nilai default "lulus" dikembalikan.

Tanggapan ini adalah solusi yang mungkin lebih cocok untuk pertanyaan awal daripada posting saya sebelumnya.

   static StrToNumber(val: string, defaultVal:number = 0): number
   {        
      let result:number = defaultVal;      
      if(val == null) 
         return result;            
      if(val.length == 0) 
         return result;      
      val = val.trim();
      if(val.length == 0) 
         return(result);
      let sign:number = 1;     
      //
      // . obtain sign from string, and place result in "sign" local variable. The Sign naturally defaults to positive
      //     1 for positive, -1 for negative.
      // . remove sign character from val. 
      //      Note, before the function returns, the result is multiplied by the sign local variable to reflect the sign.
      // . error check for multiple sign characters
      // . error check to make sure sign character is at the head or tail of the string
      //              
      {  
         let positiveSignIndex = val.indexOf('+');
         let negativeSignIndex = val.indexOf('-');
         let nTailIndex = val.length-1;
         //
         // make sure both negative and positive signs are not in the string
         //
         if( (positiveSignIndex != -1) && (negativeSignIndex != -1) ) 
             return result;
         //
         // handle postive sign
         //
         if (positiveSignIndex != -1)
         {
            //
            // make sure there is only one sign character
            //
            if( (positiveSignIndex != val.lastIndexOf('+')) )
             return result;     
             //
             // make sure the sign is at the head or tail
             //
             if( (positiveSignIndex > 0) && (positiveSignIndex < nTailIndex )  )
                 return result;
             //
             // remove sign from string
             //
             val = val.replace("+","").trim();                 
         }    
         //
         // handle negative sign
         //
         if (negativeSignIndex != -1)
         {
            //
            // make sure there is only one sign character
            //
            if( (negativeSignIndex != val.lastIndexOf('-')) )
             return result;     
             //
             // make sure the sign is at the head or tail
             //
             if( (negativeSignIndex > 0) && (negativeSignIndex < nTailIndex )  )
                 return result;
             //
             // remove sign from string
             //
             val = val.replace("-","").trim();  
             sign = -1;                 
         }               
         //
         // make sure text length is greater than 0
         //       
         if(val.length == 0) 
            return result;                             
      }   
      //
      // convert string to a number
      //
      var r = +(<any>val);
      if( (r != null) && (!isNaN(r)) )
      {          
         result = r*sign;         
      }
      return(result);    
   }


naskah perlu tahu bahwa kita var aakan menjadiNumber || String

export type StringOrNumber = number | string;

export function toString (v: StringOrNumber) {
 return `${v}`;
}


export function toNumber (v: StringOrNumber) {
 return Number(v);
}

export function toggle (v: StringOrNumber) {
 return typeof v === "number" ? `${v}` : Number(v);
}


Anda selalu dapat menggunakan opsi pemeran. Pertama, Anda harus mengubah objek Anda menjadi tipe "tidak dikenal" dan kemudian melemparkannya ke jenis objek yang diharapkan.

let subID:number = 0;

subID = <number><unknown> await obj_s1aSite.submissionTableFirstID.getText();