2013-03-21 50 views
-3

在這裏我有一個AS3華氏攝氏度轉換器我想知道有沒有更好的方式來完成同一功能,牢記這劑量工作暫時? < <雖然只有2位小數。 >>華氏攝氏轉換器有沒有更好的方法?

function RandomNumber(min:Number, max:Number = 0):Number 
{ 
    return Math.round(Math.random() * (max - min)) + min; 
} 

for(var i:int = 0; i < 20; i++) 
{ 
    var fahrenheit:Number = RandomNumber(-50, 100) 

    function fahrenheit2celsius(fahrenheit):Number 
    { 
     var celsius:Number = fahrenheit 
     celsius = fahrenheit - 32 
     celsius = celsius/1.8 
     celsius = celsius * 10^2 
     celsius = celsius + .5 
     celsius = celsius/10 
     return(celsius) 
    } 

    trace(fahrenheit + " fahrenheit",fahrenheit2celsius(fahrenheit) + " celsius",) 
} 
+0

你不應該聲明你的'fahrenheit2celsius()'函數在'for'循環。此外,事件如果';'並不總是必需的,從不使用它們可能是bug的來源。爲什麼寫'10^2'而不是'100',因爲它會更清晰。最後,方法名稱應該以小寫字符開頭,以幫助區分它們與類名稱。 – duTr 2013-03-21 01:15:45

回答

2

爲什麼不這樣:

function fahrenheit2celsius(fahrenheit):Number 
{ 
    var celsius:Number = (5/9)*(fahrenheit-32); 
    return Math.round(celsius); // <-- if you want to round to nearest int ? 
} 
+0

是的。但是它可以使用單獨的函數來給出2個小數位。 – 2013-03-21 01:12:52

+0

你想要精確到兩位小數,你在問什麼? – Daedalus 2013-03-21 01:15:00

+2

@ScottAllen將*數字*轉換爲*字符串表示形式*(用於顯示)時可以控制這一點。請參見['Number.toFixed'](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Number.html#toFixed())。 – 2013-03-21 01:21:42