我想比較2雙但沒有所有的數字。 例如我有這個雙1.548799778和這個1.547990978,我想比較每個1.xx。我怎樣才能將這個雙「回合」爲1.xx? 感謝比較2雙,但沒有所有的數字C
5
A
回答
0
使用floor或文件math.h
4
5
2
另一種可能性是隻使用與容差的比較。
if (fabs(a - b) <= tolerance) { .... }
選擇你想要的精確度。
例如,您可以選擇公差爲0.001來使用前兩位數字。
+0
可能不會工作得很好,如果'a'和'b'是微小的數字,像'1e- 6'和'2e-6',公差爲'1e-5'。查看我的回答以獲得更好的建議。 –
+0
是的,這使用絕對容忍,你的方法使用相對容忍,但是這個方法暴露的問題對我來說是可以解決的,它只需要少量的數字,它似乎是2,所以在這種情況下,這個方法應該是足夠。 –
0
以下代碼可能執行速度最快,它可以用作浮點變量的一般比較。
if ( x-y < 0.01 && x-y > -0.01)
0
可以使用Math.h
功能
double check(double number)
{
if (modf(number, 0) >= .5)
return number >= 0 ? ceil(number) : floor(number);
else
return number < 0 ? ceil(number) : floor(number);
}
double round(double number, unsigned int places)
{
double off = pow(10, places);
return check(number * off)/off;
}
if(round(1.548799778, 2) == round(1.547990978, 2))
{
}
0
這如果需要的話應該是相當快和配置。沒有引入額外的繼承
int compare(double a, double b)
{
static const double PRECISION = 0.0001;
if (a < b)
return b - a < PRECISION ? 0 : 1;
else
return a - b < PRECISION ? 0 : -1;
}
相關問題
- 1. 有沒有比較2個實體內所有值的方法?
- 2. C++比較雙數
- 3. 字符串比較沒有比較
- 4. 沒有比較
- 5. 比較兩個數字沒有jle
- 6. 雙比較 - 數字界線
- 7. c#比較2字符串
- 8. 學說2 where條件沒有比較
- 9. 比較所有列
- 10. PySpark中的所有與所有比較
- 11. strcmp()沒有比較
- 12. 比較C++中的雙打
- 13. 查詢是直接比較的快速,但沒有與同列索引的表比較,但沒有。
- 14. 所有Android SDK的比較
- 15. qsort比較所有的零
- 16. 比較沒有相同行數但列數相同的表格
- 17. 沒有strcmp()的字母比較?
- 18. 有沒有比「LIKE」更好的MySQL字符串比較?
- 19. ASM比較2個數字
- 20. 2部分數字比較
- 21. 的JavaScript沒有比較過
- 22. 如何比較c中2個整數的數字(沒有數組和字符串)
- 23. 比較列表中的所有字符串 - C#
- 24. 到2臺之間的數據沒有公共列比較
- 25. 比較2個字符串(星期幾)沒有效果
- 26. 比較C中的2個字符值
- 27. 比較數字雙數在bash
- 28. 比較C中的數字
- 29. 沒有綁定檢查的C#字節[]比較
- 30. C浮點數和雙重比較
你想要什麼樣的四捨五入?例如,是圓形還是圓形? –
@AdrienPlisson:我刪除了我的帖子......感謝您的解釋 – Zakaria
你想輪迴還是想要trunc? –