将特定字符串/整数转换为十进制

时间:2014-04-13 23:26:06

标签: c# variables

我希望程序获取所有elem1 - elem7信息,将其添加到一起,并将其放入totalElem变量中。那部分工作正常。

我坚持的部分是,我想取这个数字(比如说30),并把它放在小数的末尾,用它作为乘数。因此30将成为1.30

我得到的错误是:

  

无法将类型'string'隐式转换为'decimal'。

请注意,这不是代码中变量定义的真实位置。我把它们放在那里所以我没有发布我的整个程序。

private void calculateButton_Click(object sender, EventArgs e)
{
    int startingSheetDPS;
    int chd;
    int skill;
    int elem7;
    int elem6;
    int elem5;
    int elem4;
    int elem3;
    int elem2;
    int elem1;
    int totalElem;
    decimal elemMultiplier;
    decimal baseMultiplier;

    elem1 = Convert.ToInt32(ele1.Text);
    elem2 = Convert.ToInt32(ele2.Text);
    elem3 = Convert.ToInt32(ele3.Text);
    elem4 = Convert.ToInt32(ele4.Text);
    elem5 = Convert.ToInt32(ele5.Text);
    elem6 = Convert.ToInt32(ele6.Text);
    elem7 = Convert.ToInt32(ele7.Text);
    chd = Convert.ToInt32(chd1.Text);
    skill = Convert.ToInt32(skill1.Text);

    totalElem = elem1 + elem2 + elem3 + elem4 + elem5 + elem6 + elem7;
    elemMultiplier = 1 + "." + totalElem;
}

简而言之,我希望能够将elemMultiplier转换为包含decimal的{​​{1}}变量。

3 个答案:

答案 0 :(得分:3)

好的,非常肮脏和快速的方式,替换你的

elemMultiplier = 1 + "." + totalElem;

elemMultiplier = decimal.Parse("1." + totalElem);

要洁具,这是依赖于语言环境的。

答案 1 :(得分:2)

使用此:

String elemMul = "1." + totalElem.ToString();
elemMultiplier = Convert.ToDecimal(elemMul);

您的代码显示问题因为"。"是一个无法隐式转换为十进制的字符串。

答案 2 :(得分:1)

不要连接字符串。算一算:

elemMultiplier =
  Convert.ToDecimal(1 + (totalElem / Math.Pow(10, totalElem.ToString().Length)));

(在Gusman注意到问题后编辑。)