我有一個非常簡單的問題,但我因爲無法找到解決方案而將我的大腦撞在牆上。使用其他浮標的翻轉浮標
我在嵌入式系統中使用着色器處理器,並且由於片段着色器性能不佳而無法使用條件。
我有兩個浮體,既可以是0或1。
欲反轉第一浮子的值,如果第二浮子是1
基本上
if(floatA==1.0)
{
if(floatB==1.0)
{
floatB=0.0;
}
else
{
floatB=1.0;
}
}
- 只是沒有條件,但數學x..X
任何想法? :d
你不應該以這種嚴格的方式來比較浮游物,因爲它們不能保證它們因爲缺乏精確度而保持一定的值。 – djmj
@djmj這通常只是錯誤的。在任何不精確的數學運算後(這可能是這種情況,但是誰知道),它們不能保證保持這樣的值。但將浮點數與精確值(確保可表示,甚至保證是某些操作的結果,肯定是0)進行比較本身並不是一個壞主意。我寧願考慮教條式的*不要比較浮動* - 方法缺乏對基礎浮點表示的理解。 –
@ChristianRau知道這一點,正如你所說的「是誰知道的」,該代碼段沒有人知道爲什麼我會這麼說。如果我閱讀這樣的代碼片段,我假設代碼之前的所有內容。如果將顯示完整的頂點和片段着色器代碼,我的評論可能會不同。仍然投票了你的詳細評論。 – djmj