javascript如何將字符串轉換成數字

這篇文章將為大家詳細講解有關javascript如何將字符串轉換成數字,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網絡空間、營銷軟件、網站建設、巴南網站維護、網站推廣。

轉換方法:1、利用“-”、“*”、“/”、“%”、“++”、“--”等運算符;2、使用“Number(值)”語句;3、使用“parseInt(stringNum)”語句;4、使用“parseFloat(stringNum)”語句。

本教程操作環(huán)境:windows7系統、javascript1.8.5版、Dell G3電腦。

javascript將字符串轉換成數字

方法1:使用-、*、/、%++、--等運算符

JavaScript 會自動將字符串轉換成數字,對無法轉換為數字的則轉換為 NaN。例如:

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

方法2:使用Number()函數

Number()函數可以將參數轉換為一個數字

使用格式如下:

Number(value)

Number() 對參數 value 進行整體轉換,當參數值中任何地方包含了無法轉換為數字的符號時,轉換失敗,此時將返回 NaN,否則返回轉換后的數字。

Number() 對參數進行數字轉換時,遵循以下一些規(guī)則:

  • 如果參數中只包含數字時,將轉換為十進制數字,忽略前導 0 以及前導空格;如果數字前面為-,-會保留在轉換結果中;如果數字前面為+,轉換后將刪掉+號;

  • 如果參數中包含有效浮點數字,將轉換為對應的浮點數字,忽略前導 0 以及前導空格;如果數字前面為-,-會保留在轉換結果中;如果數字前面為+,轉換后將刪掉+號;

  • 如果參數中包含有效的十六進制數字,將轉換為對應大小的十進制數字;

  • 如果參數為空字符串,將轉換為 0;

  • 如果參數為布爾值,則將 true 轉換為 1,將 false 轉換為 0;

  • 如果參數為 null,將轉換為 0;

  • 如果參數為 undefined,將轉換為 NaN;

  • 如果參數為 Date 對象,將轉換為從 1970 年 1 月 1 日到執(zhí)行轉換時的毫秒數;

  • 如果參數為函數、包含兩個元素以上的數組對象以及除 Date 對象以外的其他對象,將轉換為 NaN;

如果在參數前面包含了除空格、+和-以外的其他特殊符號或非數字字符,或在參數中間包含了包括空格、+和-的特殊符號或非數字字符,將轉換為 NaN。

轉換示例:

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();      //創(chuàng)建一個Date對象
alert(Number(d));     //轉換Date對象,結果為1970.1.1至執(zhí)行轉換時的毫秒數: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);}; //創(chuàng)建一個函數對象
alert(Number(fn));     //轉換函數,結果為:NaN
alert(Number(window)); //轉換window對象,結果為:NaN

從上述示例中,我們也可以看到,Number() 是從整體上進行轉換的,任何一個地方含有非法字符,都將導致轉換無法成功。接下來將介紹的兩個函數與 Number() 不同的是,轉換是從左到右逐位進行轉換,任何一位無法轉換時立即停止轉換,同時返回已成功轉換的值。

方法3:使用parseInt()函數

parseInt()函數可以將參數轉換為一個整數

使用格式如下:

parseInt(stringNum,[radix])

stringNum 參數為需要轉換為整數的字符串;radix 參數為 2~36 之間的數字,表示 stringNum 參數的進制數,取值為 10 時可省略。

parseInt() 的作用是將以 radix 為基數的 stringNum 字符串參數解析成十進制數。若 stringNum 字符串不是以合法的字符開頭,則返回 NaN;解析過程中如果遇到不合法的字符,將馬上停止解析,并返回已經解析的值。

parseInt() 在解析字符串為整數時,遵循以下規(guī)則:

  • 解析字符串時,會忽略字符串前后的空格;如果字符串前面為-,-會保留在轉換結果中;如果數字前面為+,轉換后將刪掉+號;

  • 如果字符串前面為除空格、+和-以外的特殊符號或除 a~f(或 A~F)之外的非數字字符,字符串將不會被解析,返回結果為 NaN;

  • 在字符串中包含了空格、+、-和小數點“。”等特殊符號或非數字的字符時,解析將在遇到這些字符時停止,并返回已解析的結果;

  • 如果字符串是空字符串,返回結果為 NaN。

轉換示例:

alert(parseInt("1101",2));  //以2為基數的1101字符串解析后的結果為:13
alert(parseInt("a37f",16)); //以16為基數的a37f字符串解析后的結果為:41855
alert(parseInt("123"));     //以10為基數的123字符串解析后的結果為:123
alert(parseInt("  123"));   //字符串前面的空格會被忽略,結果為:123
alert(parseInt("12 3"));    //字符串中包含了空格,解析到空格時停止,結果為12
alert(parseInt("12.345")); //字符串中包含了小數點,解析到小數點時停止,結果為12
alert(parseInt("xy123"));  //字符串前面包含了非數字字符“x”,無法解析,返回結果為:NaN
alert(parseInt("123xy4")); //字符串中包含了非數字字符“xy”,解析到“x”時停止,結果為:123

從上述示例我們可以看到,parseInt() 解析浮點數時,小數部分數據會被截掉,此時需要使用下面將介紹的 parseFloat(),而不能使用 parseInt()。

方法4:使用parseFloat()函數

parseFloat()函數可以將參數轉換為一個浮點數

使用格式如下:

parseFloat(stringNum)

stringNum 參數為需要解析為浮點型的字符串。

parseFloat() 的作用是將首位為數字的字符串轉解析成浮點型數。若 stringNum 字符串不是以合法的字符開頭,則返回 NaN;解析過程中如果遇到不合法的字符,將馬上停止解析,并返回已經解析的值。

parseFloat() 在解析字符串為整數時,遵循以下規(guī)則:

  • 解析字符串時,會忽略字符串前后的空格;如果字符串前面為-,-會保留在轉換結果中;如果數字前面為+,轉換后將刪掉+號;如果字符串前面為小數點.轉換結果會在小數點前面添加 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如何將字符串轉換成數字”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

標題名稱:javascript如何將字符串轉換成數字
地址分享:http://muchs.cn/article24/picdce.html

成都網站建設公司_創(chuàng)新互聯,為您提供外貿建站、品牌網站設計、靜態(tài)網站移動網站建設、定制開發(fā)、電子商務

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

營銷型網站建設