好的,我有这段代码:
decimal jewels = numericUpDown1.Value;
int price = 0.35 / 100 * jewels;
MessageBox.Show(price.ToString());
但是由于一些奇怪的原因我得到了这个错误:`
运算符'*'不能应用于'double'和'decimal'类型的操作数。
我尝试过使用所有不同的类型,比如float,double和int,但它们都不起作用!
有什么想法吗?
答案 0 :(得分:1)
这将有效,
decimal price = Convert.ToDecimal(0.35 / 100) * jewels;
如果你想要价格为int:
int price = Convert.ToInt32(Convert.ToDecimal(0.35 / 100) * jewels);
并且..我认为珠宝不需要是小数,因为它的值来自数字向上控制,它总是int?
答案 1 :(得分:1)
您无法将decimal
值乘以double
值。如果使用decimal
个文字值,则乘法运行正常:
0.35M / 100M * jewels
要将其分配给int
变量,您必须将结果转换为int
:
int price = (int)(0.35M / 100M * jewels);
您可能希望首先对decimal
值进行舍入,因为只需将其转换为截断值:
int price = (int)Math.Round(0.35M / 100M * jewels);
答案 2 :(得分:0)
您需要专门从十进制转换为其他数字格式,例如double。所以试试:
int price = 0.35 / 100 * Convert.ToDouble(jewels);
或者:
int price = 0.35 / 100 * (double)jewels;