Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.36.10] |
|
Сообщ.
#1
,
|
|
|
double D; int month; for (int i = 0; i < count_row; i++) { D = Vx[i]; month = int(D); cout << "month" << month << "\n"; } на выводе получается month 2017. а мне нужно чтоб было 1. я чё-то не понимаю где я ошибаюсь. прошу, наведите на путь истинный |
Сообщ.
#2
,
|
|
|
О входных данных нужно телепатически догадаться?
|
Сообщ.
#3
,
|
|
|
Цитата Nelly0892 @ я чё-то не понимаю где я ошибаюсь. в коде ошибаешься. надо правильно, а у тебя неправильно |
Сообщ.
#4
,
|
|
|
Цитата Nelly0892 @ прошу, наведите на путь истинный Ваш код абсолютно правильный. В контексте вопроса "преобразовать double к int" никаких проблем нет. Если вы получаете 2017I - значит это было число 2017D. Добавлено Если ваше 2017D число должно быть преобразовано в 1I, тогда встаёт вопрос что за система счисления у вас, и каким образом вы представляете эти числа... |
Сообщ.
#5
,
|
|
|
вот из этого считываю 01.2017
|
Сообщ.
#6
,
|
|
|
ну вот видишь, ты считываешь из 01.2017 и получается month 2017, а ты считывай из 2017.01 и получишь year 01
|
Сообщ.
#7
,
|
|
|
так мне оба числа нужны
Добавлено ну я нашла причину. оказывается сам вектор сохраняется не всё число Добавлено какой есть способ чтоб отделить от числа 01.2017 число 01 ? ато случай с приведением типа не сработал |
Сообщ.
#8
,
|
|
|
Цитата Nelly0892 @ какой есть способ чтоб отделить от числа 01.2017 число 01 В соседней теме привел пример "отделения". Но хранить надо ДВА числа для одной даты. И не double (который тут не нужен), а хватит обычного int. double - это НЕ два числа вместе. double - это ОДНО вещественное число (отличается от float увеличенной точностью представления). Два числа - это либо структура, либо, например, std::pair<int, int>. |
Сообщ.
#9
,
|
|
|
Я правильно вас понимаю, вы хотите хранить два числа в одном? Если это так, и вы действительно осознаёте что делаете - у меня для вас не очень хорошая информация (не хорошая она именно для такой реализации) - double, не смотря на всю точность не гарантирует что вещественная часть числа (ваш хвост .01) будет именно такой какой вы её видите и считываете. Вас тут буквально заставляют задуматься о том что вы делаете и дают реальные решения проблемы. 1. Используйте два целых числа. 2. Не лезьте в вещественные числа, если не осознаёте их подводные камни. В математике вещественных чисел в программировании есть куча невидимых механизмов, которые поддерживают математический аппарат. Если вы видите число 0.1 это не значит что это одна десятая, потому что вы не видите всего хвоста числа, за которым, к тому же, тащится ещё куча вещественного мусора. 3. Shm предложил самый удобный и понятный вам вариант через структуру. Не игнорируйте его, а попытайтесь разобраться. |