在C#中将字符串(-)转换为Double

詹姆士

是否可以将字符串值转换为双精度?

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

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

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

这是我的代码,给出错误。

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的数据类型从双精度更改为字符串,这减轻了我的压力.. :)谢谢。

stackErr

您可以执行以下操作:

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("-");

连字符不是a double而是a string并且不能将其强制转换为双精度型。

您试图做的事是不可能的。您必须将带有连字符的字段转换为字符串字段,而不是报表中的双精度字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章