У меня есть следующая функция, которая обычно должна возвращать значение. Я вычисляю значение в приложении калькулятора, и я получаю значения просто отлично. Но в программе ниже значение переменной value всегда равно 0. Я пробовал использовать long, double, float, но ничего не работает. Пожалуйста помоги.C# double datatype дает 0 всегда
public string CalculateElapsedPercent(DateTime endTime, DateTime startTime)
{
string result = string.Empty;
DateTime currentTime = DateTime.Now;
if (currentTime > endTime)
{
result = " (100 %)";
return result;
}
long nr = (currentTime - startTime).Ticks;
long dr = (endTime - startTime).Ticks;
double value = (nr/dr) * 100.0;
result = " (" + value.ToString() + " %)";
return result;
}
Так должно быть nr быть длинным и dr быть двойным или любым другим типом? – nikhil
вы можете исправить это с помощью нескольких прикладов, '((double) nr/(double) dr)' – Cody
На самом деле кастинг только одного достаточно, компилятор автоматически использует тип с максимальной точностью для операции. – Andrew