рассчитывая процент двойного - PullRequest
1 голос
/ 11 мая 2011

Мне сложно рассчитать процент двойного значения.Я написал код ниже, но он всегда показывает «0».В чем может быть проблема?

        double percent = 80; //Percent
        double toCalc = 1/1000000; //1 uAmper

        MessageBox.Show((toCalc * (percent / 100F)).ToString());

Спасибо.

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

1/1000000 необходимо выполнить как деление с плавающей запятой. Я бы написал так:

1.0/1000000.0

Как вы написали, деление будет выполняться как целочисленное деление, а затем повышаться до значения с плавающей запятой. Целочисленное деление приводит к 0, что объясняет, что вы видите.

1 голос
/ 11 мая 2011

Эта строка неверна:

double toCalc = 1/1000000; //1 uAmper

, поскольку вы назначаете 0 для toCalc.Вот почему он всегда показывает ноль.

Вы должны изменить его на

double toCalc = 1/1000000d;

Это потому, что он сначала вычисляет 1/1000000, что для целых типов равно 0. Затем он приводитсяудвоить, но все равно 0.

...