calculatePoint(mainCircleDiameter / 2, m_AngleNeedle); // вызов функции та что ниже
QPointF Needle::calculatePoint(const double& radius, const double& angle, const double& offset)
{
QPointF pointF;
pointF.setX(m_MainCircleDiameter.value() / 2 + radius * qCos((M_PI * angle) / 180.0) - offset*qSin((M_PI * angle) / 180.0));
pointF.setY(m_MainCircleDiameter.value() / 2 + radius * qSin((M_PI * angle) / 180.0) + offset*qCos((M_PI * angle) / 180.0));
return pointF;
}S 0 0 0 0
0 X X X 0
0 X X X 0
0 X X X 0
0 0 0 0 S
Но вообще тут проблема с тем, что извлечение корня в этих числах - не точная операция. Вообще, 1/3 в Decimal не записать - это же бесконечная дробь. Но если смотресть по кубам, то все сходится. Даже для 400 знаков.
Можно и корень извлекать, только надо аккуратно получить очень точное значение 1/3. Если просто передавать в Decimal 1/3, то там сначала во float вычисления будут.
Этот код напишет что-то очень близкое к 0 и 1. Чем больше точность вы будете задавать, тем ближе к 0 вы число получите. К сожалению, вычисление кубического корня через Pow никогда не будет идеально точно.
Можно руками корень вычислять каким-нибудь методом ньютона, если вы подозреваете, что результат будет целым. Или результат округляйте и проверяйте, а не совпадает ли его куб с изначальным числом.