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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Формат STL, какой это тип переменной?( 
:(
    Опции темы
Sergio
Дата 15.5.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Здраствуйте. Вот структура STL формата:
Код

  facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
    outer loop
      vertex -4.527885e+001 2.314136e+001 0.000000e+000
      vertex -4.527885e+001 -3.119173e+001 0.000000e+000
      vertex 2.511635e+001 2.314136e+001 0.000000e+000
    endloop

Скажите пожалуйста какой тип этих чисел?
Зарание спасибо.
PM MAIL ICQ   Вверх
archimed7592
Дата 15.5.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



double


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Sergio
  Дата 15.5.2007, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



archimed7592, я когда перевожу в тип double, выводит результат
Код

-4.52789

а должно
Цитата

-4.527885e+001

Почему-то заокругляет smile 
PM MAIL ICQ   Вверх
archimed7592
Дата 15.5.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



извини, я немного разучился читать мысли - как переводишь? smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Earnest
Дата 15.5.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Скорее всего, чем-то вроде printf. По-умолчанию даблы и флоаты при выводе округляются до 6 значащих цифр. 
Да и при выводе в поток, кажется, так же.
Если тебе мало цифр в выводе, меняй параметры.
Кроме того, по умолчанию стоит формат с плавающей точкой. Если нужно именно научную нотацию - опять устанавливай параметры вывода.
Но сначала подумай, надо ли оно тебе: сами double числа от этого не округлятся.

И причем здесь STL? 


--------------------
...
PM   Вверх
Sergio
  Дата 15.5.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Типа вот так smile :
Цитата

float a = -4.52789;
double b = (double)a;

PM MAIL ICQ   Вверх
JackYF
Дата 15.5.2007, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(Sergio @  15.5.2007,  17:08 Найти цитируемый пост)
ипа вот так smile :


Мдя smile И откуда здесь остальные значащие цифры появятся?



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 15.5.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



Sergio, 
Код
#include <ostream>
#include <iostream>

int main ()
{
    double d = -4.527885e+001;
    std::cout << d << std::endl;
    std::ios_base::fmtflags old_f = std::cout.flags (std::ios::scientific);
    std::cout << d << std::endl;
    std::cout.flags (old_f);
    std::cout << d << std::endl;
    
    
    return 0;
}



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 15.5.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



archimed7592, ох жесть... в данном случае легче будет

Код

#include <iostream>
int main ()
{
    double d = -4.527885e+001;

    printf("%f\n", d);
    printf("%.10f\n", d);
    
    return 0;
}

ну или хотя бы

Код

#include <iostream>

#include <boost/format.hpp>
int main ()
{
    double d = -4.527885e+001;

    std::cout << format("%f\n") % d;
    std::cout << format("%.9f\n") % d;
    
    return 0;
}




--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 15.5.2007, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



JackYF, хоть убей, не знаю откуда во мне это, но я терпеть не могу нетипобезопасные конструкции smile

Добавлено через 4 минуты и 14 секунд
ещё так можно
Код
#include <ostream>
#include <iostream>
int main ()
{
    double d = -4.527885e+001;
    std::cout << d << std::endl << std::scientific << d << std::endl;
    
    return 0;
}



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 15.5.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(JackYF @  15.5.2007,  18:36 Найти цитируемый пост)
#include <iostream>
#include <boost/format.hpp>
int main ()
{
    double d = -4.527885e+001;
    std::cout << format("%f\n") % d;
    std::cout << format("%.9f\n") % d;
    
    return 0;
}


Здесь уже типобезопастные.

Я и сам не очень-то люблю нетипобезопастные вещи.


Это сообщение отредактировал(а) JackYF - 15.5.2007, 18:54


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 18.5.2007, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



JackYF, в первом примере инклюд stdio.h по-хорошему. Или cstdio. iostream при чём?

А boost::format - это типобезопасно. При нессответствии форматной строки экзепшены будут, подставляемые выражения через перегрузку работают (std::istringstream::operator<<). И пр.

Прикольно, кстати, от тебя слышить рекомендации буста. Блин, не ожидал!  smile 


--------------------
PM MAIL ICQ Skype   Вверх
JackYF
Дата 19.5.2007, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(Любитель @  18.5.2007,  11:06 Найти цитируемый пост)
в первом примере инклюд stdio.h по-хорошему. Или cstdio. iostream при чём?


Согласен. Я на скорую руку писал...

Цитата(Любитель @  18.5.2007,  11:06 Найти цитируемый пост)
Прикольно, кстати, от тебя слышить рекомендации буста. Блин, не ожидал!  smile

Ну говорил же я когда-то, что когда понадобится буст, то начну с ним активно работать. Когда увидел, чем он реально может помочь в некоторых местах - возрадовался. И теперь всем буду советовать smile.



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 19.5.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(JackYF @  19.5.2007,  00:30 Найти цитируемый пост)
И теперь всем буду советовать 

УРА!!! Все любители буста объединятесь!


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 20.5.2007, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



Цитата(Любитель @  19.5.2007,  13:51 Найти цитируемый пост)
Все любители буста объединятесь! 
да не вопрос... кому заявочки на членство в клубе "boost promoters"? ;)


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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