2013-09-23 23 views
0

這就是我從數據源獲取以前最大的ID並將其加1到此值的方式。浮點到C中沒有十進制值的字符串#

string _fID = (float.Parse("." + DBContext.Employees.OrderByDescending(x => 
    x.EmpID).FirstOrDefault().EmpID.ToString()) + .00001f).ToString("F5"); 

而且我得到_fID = 0.00002

但我想要的是沒有十進制值的字符串。例如:
例如。 _fID = 00002

我所做的是取代像_fID = _fID.Replace("0.","");
有什麼簡單的方法來做這個東西?感謝您的EmpID的所有:)

PS

數據類型是nvarchar(5)

+2

如果你實際上不需要十進制值,你爲什麼要使用浮點數?爲什麼不使用整數和適當數量的零格式呢?你有沒有考慮使用'decimal'而不是'double'? –

+0

您可以使用正則表達式使用更通用的extracitng值方法:http://stackoverflow.com/questions/11061550/extract-decimal-from-string –

+0

@JonSkeet,請給我看一些例子。謝謝:) – zey

回答

7

我建議你停止使用浮點類型。只需使用整數,因爲這基本上就是你所擁有的。 (當你邏輯上只使用整數時,你的數據類型是文本是一種遺憾。)

string currentHighest = DBContext.Employees 
           .Select(x => x.EmpID) 
           .OrderByDescending(x => x) 
           .FirstOrDefault(); 
// TODO: Handle currentHighest being null (empty table) 
int nextId = (int.Parse(currentHighest) + 1).ToString("00000"); 
相關問題