不同數字類型之間的轉換

問題
我要把當前數字類型轉換爲別的數字類型
解決辦法
parseInt( ) 函數把字符串轉換爲十進制數,用 Number, uint, 或 int 對象的 toString( ) 方法轉換爲字符串。
討論

在ActionScript中不管你怎麼設置數字,它的內部結果總是以十進制存貯:
// 創建顏色對象
var pink:ColorTransform = new ColorTransform( );

// 用十六進制設置 RGB
pink.rgb = 0xF612AB;

// 顯示這個值時:16126635
trace(pink.rgb);
如果你要輸出爲其他表示法,用 toString( radix ) 方法
下面的例子用構造uint對象,輸出不同的格式:
// radix 爲 2, 輸出二進制
trace(new uint(51).toString(2)); // 顯示: 110011
// radix 爲 16, 輸出十六進制
trace(new uint(25).toString(16)); // 顯示:19
var quantity:Number = 164;
trace(quantity.toString(16)); // 顯示: a4

下面的例子設置ColorTransform 對象的RGB值,調用 toString( ) 以十六進制顯示:
var pink:Color = new ColorTransform( );
pink.rgb = 0xF612AB;
trace(pink.rgb.toString(16)); // 顯示:f612ab
toString( ) 方法的參數值的合法範圍在2到36,如果沒有指定參數值,默認爲10。
和 toString( ) 相反的是 parseInt( ) 函數。它把指定的字符串轉換爲數字。
下面的代碼把各種字符串,輸出十進制數。
trace(parseInt("110011", 2)); // 顯示: 51
trace(parseInt("19", 16)); // 顯示: 25
trace(parseInt("17", 10)); // 顯示: 17
如果不指定字符串進制,默認爲十進制,除非在字符串前加上0x, 0X, 或0:
trace(parseInt("0x12")); // 顯示: 18
trace(parseInt("017")); // 顯示: 15
下面的例子給出的字符串格式和指定進制衝突,這時會默認爲十進制
// 但是下面的字符串是不合法的數字,因此返回0
trace(parseInt("0x12", 10)); // 顯示: 0
下面的字符串爲八進制,但指定爲十進制,因此係統默認字符串爲十進制,而不是八進制。
trace(parseInt("017", 10)); // 顯示 17
trace(parseInt("A9FC9C")); // NaN

 
發佈了20 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章