Я пытаюсь использовать функцию pow в С++, но результат не тот, который я ожидаю. Фрагмент:
#include <math.h>
float floatcopy = boost::lexical_cast<float>(copy); //Then floatcopy is 2.300000
float exponent = boost::lexical_cast<float>(copy[foundEXP+1]); // Then exponent is 5.00000
floatcopy = pow(floatcopy*10,-exponent);
Теперь, когда я набираю 2,3 * 10 ^ -5 на своем калькуляторе (или в голове ...), я получаю, как и ожидалось: 0,0000230.
Вышеупомянутые результаты в 1.5536773e-007
В чем здесь проблема??
pow
действительно дает ожидаемый результат. Ваш вопрос должен быть, почему мой код не делает то, что я хочу? Возможно, если вы сомневаетесь, ищите ошибку в себе, а не в компиляторе/стандартной библиотеке/языке. - person Kerrek SB   schedule 31.10.2011