4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
|
||||||
1 | ||||||
непонятки02.08.2011, 13:40. Показов 6863. Ответов 81
Метки округление (Все метки)
у меня есть прога которая берет дабл и разделяет его на две сост. целое и дробное
0
|
02.08.2011, 13:40 | |
Ответы с готовыми решениями:
81
непонятки с for непонятки с Си Непонятки с WXDev C++ Непонятки с итераторами |
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
03.08.2011, 13:17 | 61 |
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
03.08.2011, 13:57 | 62 | |||||
Кстати, тоже вариант
1
|
grizlik78
|
03.08.2011, 13:59
#63
|
Не по теме: Чего только люде не сделают, чтобы 0.5 не прибавлять :)
0
|
Заблокирован
|
||||||
03.08.2011, 14:21 | 64 | |||||
Напишу грубо т.к. устал от препинаний здесь, я не виноват что кто-то ТУГОЙ и за сout совсем с другой целью писал, вобщем ничего не прибавляю, не убавляю, вот тебе пример и тестируй на здоровье
0
|
grizlik78
|
03.08.2011, 15:05
#65
|
Не по теме: Кто-то, ага. Теперь printf делает округление, что замечательно видно на скриншотах.
0
|
Заблокирован
|
||||||
03.08.2011, 16:02 | 66 | |||||
Теперь понятно почему ты не работаешь программистов cout<< и printf осуществляют форматный вывод, который зависит от спецификаторов настройки этого самого вывода
- задал число знаков после запятой, - я настроил вывод без запятых, что тебе ещё не ясно???Хочешь узнать как осуществляется работа cout или printf - напиши разработчикам в мсдн и попроси код, тогда и поймёшь за форматированный вывод дабл. На сим считаю, что тема сама себя исчерпала...Если атврору топика нужно будет само число, никто ему не запрещает использовать sprintf c теми же спецификаторами вывода Изначально раделение дабл на компоненты шло во всех вариантах , потом тебе не давало покоя что вывод копеек не тот, вот тебе его вывели, ну и что ты кипишь как чайник??? Добавлено через 7 минут grizlik78, в завершение привожу апдейт кода, чтобы у тебя отпало желание спорить в этом топике - заметь без 0,5 + никаких циклов и прочих сложностей!
Жду следующих язв
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
03.08.2011, 16:21 | 67 |
Да, последний код, наконец-таки, делает то, что нужно. Но делает он это посредством округления в (s)printf, нравится тебе это, или нет.
Не по теме:
Я спокоен как бык :) Да я что-то спора и не заметил. Из спора обычно обе стороны выгоду извлекают, у нас же никто. На этом и закончим.
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
03.08.2011, 16:28 | 69 |
Дык ведь +0.5 делает это в десятки раз эффективнее, нежели printf.
Не по теме: Вот блин, не сдержался. Ухожу-ухожу.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
03.08.2011, 17:20 | 71 |
Всегда пожалуйста:
одна цифра только поместилась бы, а учитывая, что длинна строки в вообще никак не проверяется, скорее всего грохнется програмка... Добавлено через 1 минуту видимо, тем, что простое арифметическое действие отработает быстрее, чем вызов двух функций (sprintf() + sscanf())...
0
|
Заблокирован
|
|
03.08.2011, 19:40 | 72 |
- это эффективней, вызов цикла, возведение в степень, деление, преобразование типа...
- остальные знаки наверное тоже не нужны? Внимание сюрприз в Release версии нормально работает с s[2], забыл о мусоре в конце строк кода '\0' не поставил???Но если уж так хочешь чтобы всё было по букве закона можно s[3] поставить, сути єто НЕ ИЗМЕНИТ...
0
|
Заблокирован
|
|
03.08.2011, 20:09 | 75 |
Я уже чуть выше об этом написал
PS:Какое отношение к разделению double на целую и дробную части с возможностью записать требуемое число знаков после запятой в инт это всё имеет???? Все посты построены на каких то нападках на мой код(видимо всем сложно признать что замудрённые алгоритмы всё же хуже), в то время как искажение ввода, вызов цикла, отбрасывание разрядов, ненужное приведение типа как бы приветсвуется, где тут справедливость, а главное логика????
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
||||||
03.08.2011, 20:38 | 77 | |||||
В нижеследующей программе нет никакого искажения ввода. И циклов нет. А без приведения типов double в int не преобразовать. Монструозное преобразование через строку не в счёт.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
03.08.2011, 20:54 | 78 | |||||
Не, не грохнулось, что скорее странность, чем закономерность, я бы на такое не рассчитывал...
попробуйте 1.9999999 ввести... Может дело всё-таки не в "замудрённости" других решений, и стоит прислушаться к тому, что Вам говорят? Видимо, удивлю, но это константное выражение и будет оно вычислено один раз на этапе компиляции... Добавлено через 14 минут grizlik78, кстати, тоже неправильно отработает. Вот без отбрасывания нулей
1
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
||||||
03.08.2011, 21:19 | 79 | |||||
Неправильно только в том смысле, что вместо 2 целых и 0 сотых получится 1 целая и 100 сотых. Но сумма то сходится Сто сотых можно и потом сократить, но в целом согласен. Правда я исходил из того, что исходное число вводится с двумя знаками точности. В этом случае целые будут представляться точно. Но если исходное значение вычисляется, то такая неприятность вполне вероятна.
Добавлено через 15 минут Попробуем перекомпоновать. Вроде и временная переменная ушла и деление. Правда тут надо хорошо подумать, не пострадала ли хоть немножко область допустимых значений. Мой исходный вариант представляется мне немного надёжнее, но там придётся перенос осуществлять "вручную".
0
|
03.08.2011, 21:46 | 80 | ||||||
Ребят, вы похожи на скандальных бабок. 78 сообщений для обыденного вопроса - это слишком.
Никого не хочу обидеть но по-моему у вас нет личной жизни и вам доставляет удовольствие этот бесценный (именно бесценный, т.к. при таком количестве сообщений ни один нормальный новый пользователь данного форума не станет выяснять причину аналогичной проблемы копаясь в этом мусоре) флуд. Завязывайте. * ответы принимаются автоматически, и каждый из них целиком и полностью будет подтверждать то что я изложил.
Добавлено через 20 минут Будда, ты только что уничтожил ровно половину смысла моего сообщения....
0
|
03.08.2011, 21:46 | |
03.08.2011, 21:46 | |
Помогаю со студенческими работами здесь
80
Непонятки со списком Непонятки с выводом Непонятки с сортировкой Непонятки со scanf Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |