2016-03-06 17 views
1

我正在研究一箇舊項目,我決定拿起它,當我離開時我不記得有任何問題。如何,現在看起來像我。我得到了以下錯誤:我不知道如何解決這個問題,因爲我仍然相當新的C++從'float'轉換爲'LONG'需要縮小轉換

conversion from 'float' to 'LONG' requires a narrowing conversion

> this->TextPosition = RECT{ Position.left + 3, Position.top + Height/2 
> + CMyWindow::FontHeight/2 + 3, Position.right, Position.bottom }; 
+0

'浮動'只是一個標準類型,但似乎'LONG'不是。什麼是'LONG'? – ForceBru

+1

@ForceBru可能''長'。 –

+1

這是一個正確的警告,並非所有可能的* float *值都可以轉換爲32位整數。使用一個強制轉換告訴編譯器,你知道的更好,並且字體高度永遠不會是一個奇怪的大值。雖然+3稍微有些動搖,但你應該把它湊到一起。並檢查它是像素而不是點,當然也不應該傷害。有足夠的理由給你一個警告:) –

回答

2

您可以用投地忽略此警告:

... RECT{ static_cast<LONG>(Position.left + 3), ... and next fileds too