Мне нужно определить стандартное отклонение набора входов. Это требует суммирования (каждый вход - среднее) ^ 2. У меня есть следующий код для этого (510 пример ввода для тестирования):
int testDiff = 510;
console.printf("testDiff = %i \r\n",testDiff);
double testDiff_double = static_cast<double>(testDiff);
console.printf("testDiff_double = %d \r\n",testDiff_double);
double result = pow(static_cast<double>(testDiff),2);
console.printf("result = %d \r\n",result);
Однако этот код не генерирует ожидаемый вывод (260100). Если я печатаю значения, полученные на каждом этапе, я получаю следующее:
testDiff = 510
testDiff_double = 0
pow = 0
Почему не удается преобразовать целое число в двойное? Я использую static_cast, поэтому я ожидал ошибки во время компиляции, если была логическая проблема с преобразованием.
Примечание (хотя это не должно иметь значения): я запускаю этот код на микроконтроллере MBED.