如何獲取數字的小數點?例如:
如果我有1.5如何獲得5號碼?獲取小數點
獲取小數點
回答
int result = static_cast<int>(fmod(number, 1)*10);
編輯:或者更簡單,可能更快:
int result = static_cast<int>(number*10)%10;
編輯:使其也工作了負數,你可以這樣做:
int result = abs(static_cast<int>(number*10))%10;
說你有x=234.537
floor(x*10)
給你2345
你那麼只需要10
因此,要獲得一個除法的餘數:
int firstDecimal = floor(x*10)%10
'int firstDecimal = floor(x * 10)%10'甚至不會編譯。 'floor'是浮點類型,但'%'需要非浮點數(int,unsigned等)。 – 2010-12-13 10:44:48
我沒有給出特定語言的答案。這可以用於幾乎任何語言。您可能需要在C++中進行一些強制轉換。 – nico 2010-12-13 12:29:33
有一個很好的簡單的方法來做到這一點。
int GetFirstDecimalPlace(float f)
{
const float dp = f - floorf(f); // This simply gives all the values after the
// decimal point.
return static_cast<int>(dp * 10.0f); // This move the value after the decimal
// point to before it and then casts to an
// int losing all other decimal places.
}
使用沒有宏/功能負數工作方式調用:
n < 0 ? (int) (-n * 10) % 10 : (int) (n * 10) % 10
太複雜了。可以是'static_cast
你說得對,這樣就簡單多了。除了性能方面的原因,沒有理由不全部使用abs(),但這可以忽略不計。我只是想用這種語言提供的工具來展示一種方法,而不是圖書館。順便說一句,使用static_cast
謝謝你的回答。使用static_int代替just(int)的原因是爲了在程序中標出執行顯式轉換的地方。這是出於可讀性的原因。 – 2010-12-13 11:57:24
- 1. 如何獲取小數點符號?
- 2. 如何獲取小數點鍵盤
- 3. 從字符串獲取小數點
- 4. 從表中獲取小數點
- 5. 從浮點數中提取小數點
- 6. GNUPLOT:點數據取決於點大小
- 7. 使用Javascript獲取小數點後的數字
- 8. 如何獲取小數點後的數字? (java)
- 9. 獲取浮動的比例沒有數字小數點前
- 10. 獲取經緯度小數點後的十二位數
- 11. 在float的小數點之前獲取整數(Objective-c)
- 12. 格式化float值以獲取小數點前的數字
- 13. 如何獲取小數點後的數字?
- 14. 從NSDate獲取小時數
- 15. 獲取數組的大小
- 16. 獲取高達Python中的精度n個小數點結果
- 17. GWT獲取用戶本地小數點分隔符char
- 18. 如何獲取紅寶石中的所有小數點? (HOLD)
- 19. Java獲取幾個浮點數的最小值和最大值
- 20. 從PHP DateTime對象獲取小數點的時代?
- 21. PyQt/PySide在QSpinBOX中獲取所選值的小數點位置
- 22. 從wglUseFontOutlines獲取點數?
- 23. C#1小數點到2小數點
- 24. 使用Javascript獲取小數位數
- 25. 從數組中獲取最小數字
- 26. 獲取小數位數的長度
- 27. 如何獲得小數點分隔符?
- 28. 如何獲得小數點後的值?
- 29. 提取小數點分隔符
- 30. 如何獲取小數的小數部分的第一位數?
對不起,我不明白的問題。你想要處理的是什麼類型?你有一個double,你想在逗號後的十進制表示變成一個int?你想有5存儲在一個int?爲什麼5而不是50? – Benoit 2010-12-13 10:33:13
@Benoit,因爲我只對點後的第一個數字感興趣。 – 2010-12-13 10:34:09
...爲什麼你需要「點後的第一個數字」,但沒有別的? – 2010-12-13 10:37:07