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

本文关键字:转换 十进制 整数 字符串 | 更新日期: 2023-09-27 17:58:05

我希望程序获取所有elem1-elem7信息,将其添加在一起,并将其放入totalElem变量中。那部分很好用。

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

我得到的错误是:

无法将类型"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转换为包含1.totalElemdecimal变量。

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

好的,一种非常肮脏和快速的方法,更换

elemMultiplier = 1 + "." + totalElem;

带有

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

请注意,这取决于区域设置。

使用此:

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

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

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

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

(Gusman注意到问题后编辑)