因為oracle存檔數字格式為0.00000
而user 在網頁上要看到的格式為 1,234.123456
要比對db與網頁上的資料不符者,
產出xml 依xml 資料回存被異動的資料至oracle ,但資料格式不相同
要處理
1.oracle 產出的數字 0.00000 顯示至網頁 textbox 為 1,234.25
2.網頁顯示 1,234.56 要回存DB為 1234.100000
3.輸出xml 為1234.100000
本來以是字串處理,但是db輸出的字串與 textbox 的字串比對,
顯示上都是一樣的,但C#判別為不相符。
後來改以數字處理比對即可
將存入的字數以 Response.Write (String.Format("{0:00000.0000}", 123.45)); 處理
數字轉字串之格式可參考 http://goodlucky.pixnet.net/blog/post/30233497-%5Bc%23%5D-string.format%E8%BC%B8%E5%87%BA%E6%A0%BC%E5%BC%8F
因為C#沒有IsNumeric 故使用正達式 來處理
/// <summary>
/// 是否是有小數(不論正負)
/// </summary>
/// <param name="examine"></param>
/// <returns></returns>
public static bool IsFloat(string examine)
{
bool chk = false;
if (!string.IsNullOrEmpty(examine))
{
Regex NumberPattern = new Regex(@"^(-[0-9]*|[0-9]*)$|^(-[0-9]*|[0-9]*)(\.{1}\d*)$");
chk = NumberPattern.IsMatch(examine);
}
return chk;
}
public static bool IsInteger(string examine)
{
Regex NumberPattern = new Regex(@"^(-[0-9]*|[0-9]*)$");
return NumberPattern.IsMatch(examine);
}
public static bool getRegex(string examine, string regex)
{
Regex NumberPattern = new Regex(regex);
return NumberPattern.IsMatch(examine);
}