Во время работы над назначением программирования для класса, где я работаю с сеткой N to N из doodads и сравнивая характеристики случайного doodad с приведенными выше, ниже, слева и справа, я нашел приятное использование этого для предотвращения вложенных операторов и возможных граничных исключений. Моя цель заключалась в том, чтобы свести к минимуму код и не вставлять if-statements.
if (row == 0);
else (method (grid[row][col], grid[row-1][col]));
if (row == N-1);
else (method (grid[row][col], grid[row+1][col]));
if (col == 0);
else (method (grid[row][col], grid[row][col-1]));
if (col == N-1);<br>
else (method (grid[row][col], grid[row][col+1]));
, где method(Doodad a, Doodad b)
выполняет некоторую операцию между a и b.
В качестве альтернативы вы можете использовать обработку исключений, чтобы избежать этого синтаксиса, но он работает и хорошо работает для моего приложения.
Вы хотите указать числа:
double num3 = (double)num1/(double)num2;
Примечание. Если какой-либо из аргументов в C # является double
, используется разделение double
, которое приводит к double
. Таким образом, следующее будет работать также:
double num3 = (double)num1/num2;
Для получения дополнительной информации см .:
В дополнение к ответу @ NoahD
Чтобы иметь более высокую точность, вы можете отличить ее до десятичной:
(decimal)100/863
//0.1158748551564310544611819235
Или:
Decimal.Divide(100, 863)
//0.1158748551564310544611819235
Двойной точность 64 бит, а десятичная - 128
(double)100/863
//0.11587485515643106
double
имеет точность 53 бит, а это двоичный формат с плавающей запятой, тогда как decimal
является ... десятичным, конечно, с 96 бит точности . Таким образом, double
является точным до ~ 15-17 десятичных цифр и десятичных 28-29 цифр (и не в два раза больше точности double
). Что еще более важно decimal
фактически использует только 102 из 128 бит
– phuclv
8 July 2018 в 06:32
Сначала конвертировать одну из них в двойную. Эта форма работает на многих языках:
real_result = (int_numerator + 0.0) / int_denominator
var firstNumber=5000,
secondeNumber=37;
var decimalResult = decimal.Divide(firstNumber,secondeNumber);
Console.WriteLine(decimalResult );
double num3 = (double)(num1/num2);
. Это просто даст вам двойное представление результата целочисленного деления! – The Lonely Coder 9 October 2014 в 14:57double
вместоfloat
? Я вижу, что вопрос вызываетdouble
, но мне все равно интересно. – Kyle Delaney 17 May 2017 в 01:31