有時我必須從無符號整數值轉換爲浮點值。例如,我的圖形引擎使用浮點數並帶有SetScale(float x, float y, float z)
,我有一個具有一定大小的對象,如unsigned int
。我想將unsigned int轉換爲一個浮點數來正確縮放一個實體(這個例子非常具體,但是我希望你明白了)。Int或Unsigned Int浮動而不會收到警告
現在,我通常做的是:
unsigned int size = 5;
float scale = float(size);
My3DObject->SetScale(scale , scale , scale);
這是很好的做法,在所有的,在一定條件下(見注)?有沒有更好的辦法比float()
垃圾代碼?
備註:我無法觸摸圖形API。我必須使用帶有浮點數的SetScale()函數。此外,我也無法觸及大小,它必須是一個unsigned int。我相信還有很多其他例子具有相同的「問題」。以上內容可以應用於任何需要完成的轉換,而作爲程序員的你在這個問題上沒有多少選擇。
這將會像18歲時那樣在最高設置下對我的編譯器進行欺騙。 – 2010-11-23 23:40:45