我有一個計算器應用程序。將Double轉換爲Int
如何實現以下目標?
如果小數點後面有非零數字,則應保持爲double。
如果小數點後面沒有非零數字,則應將其轉換爲等於double的整數。
例如,10.0003應顯示爲10.0003。 10.0應顯示爲10.
當前我將所有結果顯示爲Double(10.0)。如何檢查小數點後是否有非零數字?我們有一個簡單的解決方案嗎?
我有一個計算器應用程序。將Double轉換爲Int
如何實現以下目標?
如果小數點後面有非零數字,則應保持爲double。
如果小數點後面沒有非零數字,則應將其轉換爲等於double的整數。
例如,10.0003應顯示爲10.0003。 10.0應顯示爲10.
當前我將所有結果顯示爲Double(10.0)。如何檢查小數點後是否有非零數字?我們有一個簡單的解決方案嗎?
x is a double
y = round(x)
if (x - y == 0)
{
// x has no non-zero decimal
}
else
{
// x has non-zero decimal
}
floating point
號碼沒有代表正好和準確在機器中。他們不是固定點。所以10.0
可能實際上是9.99999988451
或類似的東西。或者,10.0003實際上可能是10.0000228993
- 因此編寫滿足此條件的邏輯非常困難。
請閱讀What every computer scientist must know about floating point numbers
謝謝......我認爲這會爲我工作。將在最短時間限制後接受您的回答。 –