【问题标题】:Converting a string to a float data type将字符串转换为浮点数据类型
【发布时间】:2011-03-10 15:35:45
【问题描述】:

我需要将文本框(即货币)的内容转换为浮点数据类型。 我会转为单身吗?

txtPurchItemCorrectPrice.Text.Trim();

【问题讨论】:

    标签: c# asp.net .net-3.5


    【解决方案1】:

    如果您正在处理货币,那么我至少会使用double,如果不是decimal。那就是说你想要:

    double value = double.Parse(txtPurchItemCorrectPrice.Text.Trim());
    

    如果你不确定它是否是一个数字:

    double value;
    bool isOK = double.TryParse(txtPurchItemCorrectPrice.Text.Trim(), out value);
    

    【讨论】:

    • 它总是一个数字,因为它是一个货币字段;
    • @user279521 - 如果你能 100% 保证,那就选择 Parse 而不是 TryParse
    【解决方案2】:

    你的意思是 C# float 类型吗?

    float f = float.Parse(text);
    

    或者……

    float value;
    if (float.TryParse(text, out value))
    {
         // Yay!
    }
    else
    {
         // Boo! Parse failed...
    }
    

    请注意,上面的代码将使用当前的文化。您可能想要指定不同的文化,例如

    ...
    if (float.TryParse(text, out value, NumberStyles.Float,
                       CultureInfo.InvariantCulture))
    ...
    

    编辑:如果这实际上是数据库中的浮点列,您可能想改用double

    请注意,货币信息通常不应使用 float/double 存储;它应该使用 decimal 类型存储,例如decimal (C#) 和 NUMBER (SQL)。

    【讨论】:

    • 好吧,这是我在asp端的测试 txtPurchItemCorrectPrice.Text.Trim();并且 db 参数需要一个浮点数据类型。
    • @user279521:所以这是数据库中的“浮动”?如果是这样,您可能希望在 C# 端使用“double2”。
    • 希望我可以将 DB 数据类型更改为数字...将采取国会行动。感谢您的信息。
    【解决方案3】:
    float.TryParse(…)
    

    这样可以避免在输入无效时引发异常。

    【讨论】:

      【解决方案4】:

      Dim x As Double = Convert.ToDouble(txtPurchItemCorrectPrice.Text.Trim())

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-25
        • 2023-04-10
        • 1970-01-01
        • 2021-02-07
        • 1970-01-01
        • 2021-12-11
        • 2014-09-25
        • 1970-01-01
        相关资源
        最近更新 更多