На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Как правильно преобразовать double в long double в программе на Qt Creator?
    Я пишу программу на Qt Creator 4.12.2 .
    У меня происходит считывание числовых значений из текстового файла:

    ExpandedWrap disabled
      double  dval1, dval2, dval3;
      long double  ldval1, ldval2, ldval3;
      //...
      fgets(s,256,f);
      sscanf(s,"%lf %lf %lf",&dval1,&dval2,&dval3);
      ldval1 = dval1;
      ldval2 = val2;
      ldval3 = val3;


    В результате чего у меня из этого файла считывается вещественное значение типа double равное, допустим, 1.23456789 , а после присвоения этого значения переменной типа long double вместо этого значения появляется значение равное, допустим, 1.234567890002468 .

    Можно ли сделать так, чтобы в переменную типу long double попадало правильное значение (1.23456789), а не значение со "хвостом" (2468) ? Если можно, то как это сделать?
      Нет, нельзя. Переменные с плавающей точкой могут точно представить далеко не все числа. Объяснение. Еще одно (см. параграф "константы")
      Сообщение отредактировано: Dushevny -
        Для начала посмотрите чем сейчас long double отличается от double.
        Не пользуйтесь любыми разновидностями scanf.
        И если вам нужна такая точность то нужно использовать не стандартные решения. Они будут более медленными.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0238 ]   [ 16 queries used ]   [ Generated: 24.04.24, 23:06 GMT ]