Как считать число с цифрами после точки или запятой в С++? (желательно одной операцией)

Принятый ответ

Мы отклонились от темы и перешли к другой проблеме. Хаха, я нашел ошибку, на самом деле тут все нормально считывает, дело в неправильной арифметической операции
Praytic:
Ну вот, почему то не считает цифру после точки.
Надо было умножать не на i, а на c. А так, он нормально читает числа с точкой. :D
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
28
10 лет назад
1
тоесть считать
откуда считать число?
2
20
10 лет назад
2
Оттуда, откуда я ввел его. Например строка: "Введите число: ", а после него надо ввести число , допустим, 5.67. Программа должна занести это число в реальную переменную, а она заносит только число до точки.
1
28
10 лет назад
1
ты про консольку?
в консольке передаётся строка
насколько я знаю
2
20
10 лет назад
2
Ну вот, почему то не считает цифру после точки.
2
24
10 лет назад
2
что-то мне подсказывает что разделителем в данном случае считается запятая, а не точка
0
20
10 лет назад
0
prog:
что-то мне подсказывает что разделителем в данном случае считается запятая, а не точка
Нет, там точно точка. Что еще странно, в пустой программе, если ввести число через точку, программа его записывает в double, но только до 7 символа... Вот вводил число в 10 символов, а потом выводил его:
2
24
10 лет назад
Отредактирован prog
2
Еще раз говорю, при вводе попробуй ввести через запятую, не обращая внимания на то, что в коде разделитель это точка.
Ну и да, собственно, считывай строку, а потом уже разбирай на числа любым удобным способом - это куда надежнее чем полагаться на автоматическую разборку.
0
20
10 лет назад
0
prog:
Еще раз говорю, при вводе попробуй ввести через запятую, не обращая внимания на то, что в коде разделитель это точка.
Ну и да, собственно, считывай строку, а потом уже разбирай на числа любым удобным способом - это куда надежнее чем полагаться на автоматическую разборку.
Еще раз говорю, там не точка, ты думаешь я не проверял? Я думал в си есть нормальная операция присваивания реальных чисел, а разбиение я и так использовал.
0
28
10 лет назад
Отредактирован Isstrebitel
0
Praytic, нормальное есть но не в api
prog, согласен с тем что не надо полагаться на автоматический разбор
если бы api было таким крутым то нафиг бы тогда люди писали либы
Praytic, си(как и почти все подобные яп) для быстроты(или по каким то другим причинам) упрощают тип числа
дабл в флот
флот в инт
и т.д.

А в следующий раз, пожалуйста, ставь точки после предложений вместо enter. В следующий раз просто дам 1 пункт, было же уже такое один раз. Весь этот комментарий может занимать гораздо меньше места.
Этот комментарий удален
0
20
10 лет назад
0
А в следующий раз, пожалуйста, ставь точки после предложений вместо enter. В следующий раз просто дам 1 пункт, было же уже такое один раз. Весь этот комментарий может занимать гораздо меньше места.
Как все серьезно, может еще и за грамматику пункты давать? И я всегда ставлю точку в конце предложения и не злоупотребляю энтером, не понимаю с чего вы это взяли.
Это я написал новое сообщение после того, а не энтер нажимал. А по теме:
Praytic:
Praytic, нормальное есть но не в api
prog, согласен с тем что не надо полагаться на автоматический разбор
если бы api было таким крутым то нафиг бы тогда люди писали либы
Я так и не понял, что за либы, api. Они мне помогут в моем вопросе? Если да, то что это?
0
24
10 лет назад
0
И я всегда ставлю точку в конце предложения и не злоупотребляю энтером, не понимаю с чего вы это взяли.
И я не понимаю. Я это для nvc123 написал.
Там же написано "(отредактировано Isstrebitel)".
0
28
10 лет назад
0
Praytic, api это функции встроенные в сам яп
cin
cout
system()

уважаемый истребитель
зачем точка если есть enter?
ожидание нормального ответа...
Isstrebitel, кстати поздравляю
ты первый кому не нравится мой enter

Praytic, заноси то что ввели в строку
ищи в строке точку
потом по кускам преобразовывай строку в дабл
1
9
10 лет назад
Отредактирован AsagiriGen
1
Видимо, и вправду для экономии всего 6 символов, при чем не важно, где точка. сам впервый раз столкнулся
Проблема здесь целиком на стороне вывода, т.е. вводится она как надо быть, а вот уже выводится только 6 символов на число.
Если ты хочешь, чтобы у тебя было определённое кол-во знаков после запятой, можно использовать такую вещь:
cout.precision( int i); Где i - количество знаков после запятой(в программе - точки).
гугли "форматированный ввод"
Если у тебя число целых ноль, то отобразятся 10 чисел после точки. Если целая часть однозначное !=0, то 9 знаков, двузначное - 8 знаков, в общем мысль ты понял - или считай предположительно какая будет целая часть или заранее ставь i = большому числу.
0
20
10 лет назад
0
Praytic, заноси то что ввели в строку
ищи в строке точку
потом по кускам преобразовывай строку в дабл
Так раньше и делал, но думал есть какая-то операция для этого, но все равно спасибо и тебе GenElCon.
0
24
10 лет назад
0
Что такое C++? Это С и пара костылей.
Сам я давненько на костылях ничего не писал, так что с запятой действительно промахнулся, хотя и помню что у меня такая беда была, а вот GenElCon дело говорит - беда в параметрах вывода, а не в считывании.
0
20
10 лет назад
Отредактирован Praytic
0
Мы отклонились от темы и перешли к другой проблеме. Хаха, я нашел ошибку, на самом деле тут все нормально считывает, дело в неправильной арифметической операции
Praytic:
Ну вот, почему то не считает цифру после точки.
Надо было умножать не на i, а на c. А так, он нормально читает числа с точкой. :D
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.