在C#

时间:2016-03-02 03:27:12

标签: c#

是否可以将字符串值转换为double?

例如:用于显示0.00的双数据类型对吗? 现在,我要输出的是,如果值或结果等于0.00,那么该值应转换为连字符-

if (value == 0)
{
    x = "-";
}

然后显示x应该再次转换为double,因为我在Crystal Report中使用了double。

这是我的错误代码。

TCPS = TotalCPS + PSAmount;
TAPPS = TotalAPPS + PSAmount2;
if (TCPS==0)
{
    TCPS = Convert.ToDouble("-");
}
else if (TCPS > 0)
{
    TCPS = TCPS + 0;
}
row["CPS"] = TCPS;

CPS这里是Double数据类型,CPS的值将显示在Crystal Report中,这就是我需要输出Hypen -的原因在报告中0.00。我希望这能为您提供更清晰的信息。感谢

修改 十分感谢大家!我已经明白了!这就是我所做的。

            TCPS = TotalCPS + PSAmount;
            TAPPS = TotalAPPS + PSAmount2;
            if (TCPS==0)
            {
                row["CPS"] = "-";
            }
            else if (TCPS > 0)
            {
                row["CPS"] = string.Format("{0:N}", TCPS);
            }

我将CPS的数据类型从double改为string,这让我免于压力.. :) 谢谢..

3 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

string yourStr = "0.00";
double yourDouble;

if(double.TryParse(yourStr, out yourDouble) == false)
{
    //Couldn't parse input as double. Handle this case
}

if(yourDouble == 0.00)
{
        string x = "-";
}

如果你知道输入总是双倍的话,你可以使用Convert.ToDouble

string yourStr = "0.00";
double yourDouble = Convert.ToDouble(yourStr);
if(yourDouble == 0)
{
    string x = "-";
}

修改

你不能这样做:

TCPS = Convert.ToDouble("-");

连字符不是double,而是string,并且不能将类型转换为double。

您尝试做的事情是不可能的。您必须将包含连字符的字段转换为字符串字段而不是报表中的双字段。

答案 1 :(得分:1)

使用double.TryParse()转换" - "到0.00

  string x = "-";
  double outPut;
  double.TryParse(x, out outPut);
如果转化成功,

double.TryParse()将返回true,如果转换成功则返回false。如果发生故障转换,请将0.00返回到out参数。在您的情况下,您将获得所需的输出(0.00),但实际上它是转换失败的结果。

答案 2 :(得分:0)

怎么样:

var x = value == 0 ? "-" : value.ToString();
// then display x as either