将db中的varchar转换为long类型

时间:2011-12-08 12:44:24

标签: c# long-integer varchar

我在数据库中有数字,例如733.25,它在mssql中存储为varchar。

datareader将其读作字符串对象“733.25”

如何将其转换为long(int64)?

Int64.Parse返回错误

(长)Convert.ToDecimal返回“73325”

谢谢

4 个答案:

答案 0 :(得分:3)

  1. 在.NET中,请务必使用InvariantCulture

    decimal d = Convert.ToDecimal("733.25", CultureInfo.InvariantCulture);
    

    更多信息:MSDN: Using the InvariantCulture Property

  2. 在T-SQL中,您可以在查询中强制转换它。

    SELECT cast('733.25' as float)
    

    更多信息:MSDN: CAST and CONVERT (Transact-SQL)

  3. 两者都会产生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