Модераторы: xvr

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> хде ашипка? 
:(
    Опции темы
cooper123
Дата 30.7.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



дело не  в форматировании, форматирование не изменяет число оно может быть уменьшает точность или читаемость но как из 1.2345 получается что то вроде 3098746454 ? 

PM MAIL   Вверх
powerfox
Дата 30.7.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 5
Всего: 97



Цитата(cooper123 @  30.7.2007,  17:25 Найти цитируемый пост)
дело не  в форматировании, форматирование не изменяет число оно может быть уменьшает точность или читаемость но как из 1.2345 получается что то вроде 3098746454 ?

Покажи полностью свой код и как компилируешь. Компилятор какой (версия и где брал)?


--------------------
user posted image
PM WWW   Вверх
bsa
Дата 30.7.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Цитата(zkv @ 30.7.2007,  16:06)
bsa, в студии для корректной работы следует для double указывать формат с l или с L (без разницы вроде) в начале

На сколько я знаю, Visual Studio (о ней речь?) под Linux и другими Unix-like системами не работает и, более того, даже не компилит под них.
Цитата(man 3 printf)

      e,E    The double argument is rounded and converted in the style [-]d.ddde[-]dd where there is one digit before the deci-
             mal-point character and the number of digits after it is equal to the precision; if the precision is missing, it
             is taken as 6; if the precision is zero, no decimal-point character appears.  An E conversion uses the letter  E
             (rather  than  e)  to introduce the exponent.  The exponent always contains at least two digits; if the value is
             zero, the exponent is 00.

      f,F    The double argument is rounded and converted to decimal notation in the style [-]ddd.ddd, where  the  number  of
             digits  after the decimal-point character is equal to the precision specification.  If the precision is missing,
             it is taken as 6; if the precision is explicitly zero, no decimal-point character appears.  If a  decimal  point
             appears, at least one digit appears before it.

             (The SUSv2 does not know about F and says that character string representations for infinity and NaN may be made
             available.  The C99 standard specifies `[-]inf' or `[-]infinity' for infinity, and a string starting with  `nan'
             for NaN, in the case of f conversion, and `[-]INF' or `[-]INFINITY' or `NAN*' in the case of F conversion.)


cooper123, спецификаторы нужны не только для задания форматирования, но и для определения того, что ты указал в качестве параметров. Поэтому нельзя надеяться на корректность, когда ты указываешь, что в параметрах у тебя double (8 байт), а передаешь float (4 байта).

Это сообщение отредактировал(а) bsa - 30.7.2007, 16:36
PM   Вверх
cooper123
Дата 30.7.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



в данный момент вариант такой

Код

#include <math.h>
#include <stdio.h>


int main(void)
{
  char *ss;
  double x;
  float y;
  ss="1.2345";
  x=atof("1.2345");
  y=atof("1.2345");
  printf("m12 now y ist:  %f \n",y);
  printf("m12 now x ist:  %f \n",x);
  return 0;
}



sytem  debial (last net intallation)

gcc 4:4.1.1-15   //установил через пакетный менеджер из сети. 

сомпиляция делалась так: 

gcc /dir1/prob -o /dir2/prob



Это сообщение отредактировал(а) cooper123 - 30.7.2007, 16:41
PM MAIL   Вверх
bsa
Дата 30.7.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Попробуй так:
Код
#include <math.h>
#include <stdio.h>


int main(void)
{
  char *ss;
  double x;
  float y;
  ss="1.2345";
  x=atof("1.2345");
  y=atof("1.2345");
  printf("m12 now y ist:  %f \n", (double)y);
  printf("m12 now x ist:  %f \n",x);
  return 0;
}

PM   Вверх
powerfox
Дата 30.7.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 5
Всего: 97



cooper123, и поменяй %f на %g, как я тебе говорил.


--------------------
user posted image
PM WWW   Вверх
cooper123
Дата 30.7.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



bsa (double)y не помогло.  и %g тоже не помогло

насчет форматирования Вы конечно же правы. но в данном случае налицо ошибка начинающего. более грубая  нежели форматирование. Вот только в чем она заключается?

Это сообщение отредактировал(а) cooper123 - 30.7.2007, 16:50
PM MAIL   Вверх
powerfox
Дата 30.7.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 5
Всего: 97



cooper123, попробуй скомпилировать с помощью g++ (замени просто gcc).
А ты уверен, что ты тот исполняемый файл запускаешь? Как ты запускаешь приложение?


--------------------
user posted image
PM WWW   Вверх
cooper123
Дата 30.7.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



для уверенности я пишу что нибудь типа "y now is" и когда уверенность пропадает пишу что нибудь другое. 

g++ сщчас попробую, только видимо мне его еще установить надо, потому как перед этим пробывал и не получилось. 

установил и сразу получилось. сначала на ++ и потом на сс 
странно а в чем дело то?

Добавлено @ 17:03
в общем спасибо всем за помощь чайнику. 

урааааа!!!!
будем дальше двигаться 

спасибо еще раз. 

сщчас попробую на виндах тоже г++ установить. 

а на cygwin такой фокус не проходит. хотя может быть дело в виндах. 
не прошел, просто старый екзек был, удалил его. 
вот видь оказывается си без плюсов нету. 


спасибо пауерфокс - ты настоящий друх

та же бадяга на mingw и просто гсс в командном окне, хотя он берется из mingw. 


Это сообщение отредактировал(а) cooper123 - 30.7.2007, 17:34
PM MAIL   Вверх
powerfox
Дата 30.7.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 5
Всего: 97



Цитата(cooper123 @  30.7.2007,  17:56 Найти цитируемый пост)
спасибо пауерфокс - ты настоящий друх

Не за что.

Очень странная ошибка...


--------------------
user posted image
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0814 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.