我有一個文本框,用戶可以在其中輸入雙點數。例如:-
1.00
1.0000
1.23
1.000000
等,可以輸入來自 UI 的雙數。
在我的 C# 代碼中,我必須驗證用戶是否輸入了 1。
1.00
1.0000
1.000000
都被認為是 1 并通過驗證。我正在考慮轉換為 Int
public bool Validate(double number)
{
int v = Convert.ToInt32(number)
if(v == 1)
return true;
}
但問題是我會失去精度, 1.00 和 1.001 都將導致 1 并且錯誤地 1.001 將回傳為我不需要的 true 。如何檢查用戶是否在 C# 中從 UI 輸入了 1.00、1.000 等?
編輯:對于 1.23、1.001 等數字,我不需要 true
uj5u.com熱心網友回復:
將值與 1.0 進行比較應該可以解決問題:
bool isOne = val == 1.0;
(浮點數的相等比較可能會很棘手,但這個比較符合您的預期。)
編輯:正如馬修沃森在評論中建議的那樣,使用1代替1.0也有效。
uj5u.com熱心網友回復:
您可以使用decimal資料型別
public bool Validate(double number)
{
var num = decimal.Parse(number.ToString());
if(num == 1)
return true;
return false;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/353958.html
上一篇:使用矢量制作井字游戲板
