2011-08-22 82 views
0

我想將任意字符串(或爲了更容易處理字符串哈希)轉換爲介於0和1之間的浮點數。目的是創建一個返回一個給定字符串的顏色代碼,以便用戶始終可以用從其名稱生成的相同顏色看到該實體。將任意字符串轉換爲在範圍0和1中浮動

OP包括在評論代碼(包括這裏閱讀):

var hashed:String = MD5.hash(input); // creates a 32 long hexa 
const max:Number = Number("0xffffffffffffffffffffffffffffffff"); 
var hashedHexa:Number = Number("0x" + hashed); 
return hashedHexa/max; 
+0

我不明白你在問什麼。你有沒有算法?或者你希望我們爲你創造一個嗎? – JeffryHouser

+0

我正在尋找一個算法 – spupek

+0

我正在試驗這個: var hashed:String = MD5.hash(input); //創建一個32長的六進制 const max:Number = Number(「0xffffffffffffffffffffffffffffffff」); var hashedHexa:Number = Number(「0x」+ hashed); return hashedHexa/max; – spupek

回答

1

既然你問我們創造的算法;有很多方法可以做到這一點。我可能會嘗試使用charCodeAt方法。概念上是這樣的:

public function stringToDecimal(value:String):Number{ 
var results : Number = 0; 
// loop over each character in string 
for(var index:int = 0;index< value.length; index++){ 
    // this code turns each character in the string to a number and adds them all together 
    // divide by 100 b/c we know all ASCII charcodes will be between 0 & 127. This will give 
    // a decimal result 
    results += (value.charCodeAt(index)/100); 
} 
return results 
} 

這個算法不會保證每個字符串都會返回一個唯一的數字;但那不是你的要求之一。

相關問題