當我初始化我的程序float
變量,我經常有這樣的載體:我必須使用0.f初始化浮點數嗎?
Vector forward(0.f,0.f,-1.f),right(1.f,0.f,0.f),up(0.f,1.f,0.f)
(矢量僅3輛彩車像struct Vector{ float x,y,z; };
)
這看起來多容易爲已讀:
Vector forward(0,0,-1),right(1,0,0),up(0,1,0)
必須使用float
s初始化我的float
變量嗎?當我使用整數(或double
s)初始化float
時,我是否會失去任何東西或招致某種懲罰?
您不應該真的使用Vector作爲結構名稱,因爲它很容易與stl :: vector混淆。您可以改爲將其命名爲vector3f或vector3d – SinisterMJ
在FORTRAN中,您必須使用適當的賦值,因此零加倍必須爲0.0d0,而不是0.0e0或0.許多以FORTRAN開頭的人都會被此行爲燒燬,明確地把0.f放在他們的C++代碼中。相比之下,C++實際上指定了如何將0或1的字面值提升到適當的浮點值。 –
我認爲初始化不會是問題。但是,如果您進行比較,則會使用更大的數據類型(0.0f與0.0),因此它往往會變慢。顯然取決於使用情況,但不使用正確的類型,則明確導致轉換。編譯時或運行時。避免它可以節省時間。 – stefan