我希望程序获取所有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}}变量。
答案 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注意到问题后编辑。)