问题

这是我的代码:

decimal trans = trackBar1.Value/5000;
this.Opacity = trans;

当我构建应用程序时,它给出以下错误:

Cannot implicitly convert type 'decimal' to 'double'.
c#中如何将小数转换为双精度?

解决方案:

报错是这一行 this.Opacity = trans;
trans 是decimal, 而this.Opacity是double。

所以改成double就可以了:

double trans = trackBar1.Value/5000.0;
double trans = trackBar1.Value/5000d;

不需要像这样使用(double) 显式强制转换为double:

double trans = (double) trackBar1.Value/5000.0;

当然还可以使用 decimal.ToDouble()转换为双精度数:

decimal transperancy = trackBar1.Value/5000;
this.Opacity = decimal.ToDouble(transperancy);

或者
this.Opacity = decimal.ToDouble(trackBar1.Value/5000);
日期:2020-03-23 09:41:09 来源:oir作者:oir