将特定字符串/整数转换为十进制
本文关键字:转换 十进制 整数 字符串 | 更新日期: 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.totalElem
的decimal
变量。
好的,一种非常肮脏和快速的方法,更换
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注意到问题后编辑)