Преобразовать десятичную в двойную? - PullRequest
618 голосов
/ 01 августа 2008

Я хочу использовать трек-бар для изменения непрозрачности формы.

Это мой код:

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

При сборке приложения выдается следующая ошибка:

Невозможно неявно преобразовать тип 'decimal' в 'double'.

Я пытался использовать trans и double, но тогда управление не работает. Этот код прекрасно работал в прошлом проекте VB.NET.

Ответы [ 13 ]

39 голосов
/ 13 мая 2012

Поскольку Opacity является двойным значением, я бы просто использовал double с самого начала, а не бросал вообще, но обязательно использовал double при делении, чтобы не потерять точность

Opacity = trackBar1.Value / 5000.0;
39 голосов
/ 06 марта 2012

Лучшее решение:

this.Opacity = decimal.ToDouble(trackBar1.Value/5000);
33 голосов
/ 11 апреля 2013
this.Opacity = trackBar1.Value / 5000d;
...