неправильный результат при qSin(180) градусов Qt / C++

167
19 февраля 2018, 03:16

Неправильный

real result = qSin(qDegreesToRadians(qreal(180))); 

результат = 1.22465e-16 а нужен 0 и нужно чтобы было floating number а не int

Answer 1
  1. qDegreesToRadian принимает double или float - для избежания путаницы лучше использовать их
  2. qDegreesToRadian(180) возвращает не точное значение Пи, а 3.14159, а потому результат использования QSin лишь приближен к 0. Оптимально после использования функции делать округление, используйте std::round или явное приведение (int).
  3. Используйте std::sin, поскольку qSin выглядит как:

    inline qreal qSin(qreal v)
    {
        using std::sin;
        return sin(v);
    }
    
READ ALSO
boost::log из динамической библиотеки

boost::log из динамической библиотеки

Есть проект который состоит из нескольких библиотекЗадумывается так, что все эти библиотеки должны писать в один лог файл

135
Почему выводится пустой виджет таблицы?

Почему выводится пустой виджет таблицы?

Беру делаю форму с QTableWidget заполняю ее в mainwindowcpp, но она выводится пустой

121
Почему при использование static в switch происходит ошибка?

Почему при использование static в switch происходит ошибка?

Почему когда использую статическую переменную в switch case выдает ошибки : "initialization of "counter" is skipped by 'case' label", "initialization of "counter" is skipped by 'default' label"

155
Почему закрывается всё приложение?

Почему закрывается всё приложение?

У меня есть основное окно в котором считаются точки, а потом выводятся графикиПочему у меня закрывается вся программа, когда закрываешь окно...

102