MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-06-16, 04:57

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 3 篇文章 ] 
發表人 內容
文章發表於 : 2007-04-30, 22:13 
離線

註冊時間: 2005-12-12, 10:55
文章: 16
來自: Taipei
要將文字變數
var a = "3";
轉換為數字來做運算
這樣轉有時可以,有時又不行:
var b = 0 + a;
這樣轉的話就都可以:
var c = 1 * a;


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-05-02, 14:05 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
gi0001tw 寫:
要將文字變數
var a = "3";
轉換為數字來做運算
這樣轉有時可以,有時又不行:
var b = 0 + a;
這樣轉的話就都可以:
var c = 1 * a;

可以用 parseInt()。
例如:parseInt("3") == 3
建議這樣寫:parseInt("3", 10)
後面的 10 指的是十進位,因為有時候會被誤判為八進位。

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-05-03, 00:27 
kourge 寫:
gi0001tw 寫:
要將文字變數
var a = "3";
轉換為數字來做運算
這樣轉有時可以,有時又不行:
var b = 0 + a;
這樣轉的話就都可以:
var c = 1 * a;

可以用 parseInt()。
例如:parseInt("3") == 3
建議這樣寫:parseInt("3", 10)
後面的 10 指的是十進位,因為有時候會被誤判為八進位。


1.在運算"數字 + 字串" 前, javascript 直譯器會先將「數字型態」的資料轉為「字串型態」,再做字串合併的動作。

2.「字串型態」的資料沒有"相乘"的運算元,因此 javascript 直譯器 會先將「字串型態」的「文數字」資料轉為「數字型態」,再做數字相乘。

3. 若parseInt() 傳入的「文數字」參數有前導"0",會被當作八進位。

4.不同型態的資料作運算,可能因編譯器或直譯器不同,產生不同的結果,因此最好的方式是自行處理資料型態的轉換。


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 3 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 15 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群