Thursday, 15 October 2015

When setting a form's opacity should I use a decimal or double?

Question :
I want to use a track-bar to change a form's opacity.
This is my code:
decimal trans = trackBar1.Value / 5000;
this.Opacity = trans;
When I try to build it, I get this error:
Cannot implicitly convert type 'decimal' to 'double'.
I tried making trans a double, but then the control doesn't work. This code has worked fine for me in VB.NET in the past.

Answer :
An explicit cast to double isn't necessary.

double trans = (double)trackBar1.Value / 5000.0;
Identifying the constant as 5000.0 (or as 5000d) is sufficient:

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

No comments:

Post a Comment