我有一個允許用戶輸入價格的表單,例如10.00
。將字符串轉換爲十進制 - 保留數字
但是,由於表單是純文本,用戶可以輸入$10.00
或10.00 for book
。 我不能改變用戶界面,這必須在引擎蓋下完成。 因此,基本上什麼是使用類型,我只是想要一個十進制結果。
我開始做這個
public decimal FilterPrice(dynamic price) {
string convertPrice=price.ToString();
var filterNumber=
from letter in convertPrice
where char.IsDigit(letter)
select letter;
return something;
}
然而,這將去掉.
。任何想法如何做到這一點?
*爲什麼*不能在UI中完成?您應儘早限制您的輸入,不要讓用戶輸入任何他們想要的內容,然後嘗試弄清楚他們的意思。如果我使用了您的應用程序並輸入「10.00 foo 11 bar 1.1.10baz」,該怎麼辦? – 2013-02-21 18:48:39
老實說,我會修剪,刪除$符號,如果它仍然無效,我會拋出一個異常。 – 2013-02-21 18:48:50
是的,通過允許額外的輸入,它爲你創建了更多的錯誤處理代碼。如果您可以過濾一個批量,它將運行更平滑,並且需要更少的時間。 – Greg 2013-02-21 18:57:14