我在数据库中有数字,例如733.25,它在mssql中存储为varchar。
datareader将其读作字符串对象“733.25”
如何将其转换为long(int64)?
Int64.Parse返回错误
(长)Convert.ToDecimal返回“73325”
谢谢
答案 0 :(得分:3)
在.NET中,请务必使用InvariantCulture
。
decimal d = Convert.ToDecimal("733.25", CultureInfo.InvariantCulture);
在T-SQL中,您可以在查询中强制转换它。
SELECT cast('733.25' as float)
两者都会产生733.25。
希望这会有所帮助
答案 1 :(得分:1)
double.Parse(Value);
答案 2 :(得分:0)
我认为你的代码是这样的:
string val = "733.25";
long longVal = (long)decimal.Parse(val);
// longVal will now contain the value you want
在转换为long之前,您必须将值解析为小数(其结果是删除小数位)。请注意,这样做会降低精度,这就是您需要显式转换的原因。
答案 3 :(得分:0)
您可以将Cast and Convert T-SQL与SQL语句一起使用。
SELECT CAST(CONVERT(decimal, strColumn1) AS bigint) From TableName