似乎很簡單,但無法找到一種優雅的方式......我想檢查一個值是否在一定範圍內,但也是使用有效的增量/分辨率。假設我的範圍是0.1至99.9,分辨率爲.1。有效值爲1.1和1.2,但1.15無效。我將如何檢查?C#使用有效增量檢查值的範圍
0
A
回答
0
可以使用%
操作:
float i = 1.15;
Console.WriteLine((decimal)i % .1M == 0);
輸出:false
float i = 1.1;
Console.WriteLine((decimal)i % .1M == 0);
輸出:true
0
0
請嘗試:
double a = 0.1;
double b = 99.9;
double x = 1.5;
double range = 0.5;
double epsilon = 0.000001;
bool isRange = (x >= a) && (x <= b) && (Math.Abs((x - a)%range) < epsilon);
這裏小量是一些非常小的 '錯誤' 值
0
你正在處理arithmetic progression。在你的例子a[1] = 0.1
,d = 0.1
,a[999] = 99.9
。如果您的號碼x
是發展的n
個成員那麼下列成立:
n = (x - a[1])/d + 1
所以,你必須檢查
(x - a[1])/d
是否是一個非負整數。例如:
(1.1 - 0.1)/0.1 = 10
因此1.1是進展的一員。但是:
(1.15 - 0.1)/0.1 = 10.5
因此1.15不是進展的一員。
+0
在這裏學到了新東西,優秀的回答:) – user1646235
0
嘗試使用此代碼
decimal yourDecimal = ;
if(yourDecimal % .1M == 0)
{
......
}
0
考慮使用Math.Round迫使它到你想要的精確度。你的應用程序中1.999和1.2之間有什麼區別? (另請參閱this SO question)
相關問題
- 1. 變量的有效範圍
- 2. 有效numpy值的範圍
- 3. 增量MATLAB範圍
- 4. 使用c#和SQL檢查日期範圍的最有效方法
- 5. 檢查範圍內是否有值
- 6. 增值稅有效性檢查
- 7. 帶有定義範圍的ASCII增量
- 8. 檢查其他時間範圍的時間範圍失效
- 9. MYSQL自動增量範圍
- 10. 批量檢查正確的IP範圍
- 11. c中的範圍檢查是什麼?
- 12. 檢查超出C的範圍
- 13. C#檢查指定範圍內的丟失範圍
- 14. 檢查複選框的值在範圍
- 15. 使用jquery檢測數量範圍
- 16. 如何檢查迭代器指定的範圍是否有效?
- 17. Oracle SQL Query來檢查活動的有效日期範圍?
- 18. 指定的參數是有效的值的範圍之外 - C#
- 19. 查找範圍內的範圍值之和數量
- 20. 如果給定的範圍有效,請使用VBA進行檢查
- 21. 檢查範圍只
- 22. 檢查範圍內
- 23. 使用javascript檢查時間變量的範圍
- 24. 指定的參數超出了有效值的範圍? C#
- 25. 如何檢查C++中字符的unicode值的範圍
- 26. 在Matlab中向量化範圍檢查
- 27. 檢查數量是在範圍
- 28. 流量 - 如何檢查數字範圍?
- 29. 使用Python來檢查大數據樣本範圍內的值
- 30. c變量範圍
什麼是您的價值?十進制?浮動? –
類型在這種情況下是雙重 – user1646235