Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2014, 18:00   #1
Vladislavv
Пользователь
 
Регистрация: 30.07.2014
Сообщений: 35
По умолчанию кол -во точек после запятой

при запуске (если цифр больше 8) у становится непонятным и уходит в минус
Код:
#include <iostream>
#include <cmath>
#include <ctime>
#include <conio.h>
using namespace std;

double inf ();
int inn ();
template <typename T>
void count(T f, int n);

void main (){
double f=0;
int n=0;
f=inf();
n=inn();
count (f, n);
}


inline double inf (){
double fig=0;
cout <<"input figure\n";
cin >>fig;
return fig;
}

inline int inn(){
int nb=0;
cout <<"how many figures must be after point?\n";
cin >>nb;
return nb;
}

template <typename T>
void count (T f, int n){
	T ff=f;
	int nn=0, e=0, fq=512;
	do{
	ff=ff*10;
	e=ff;
	cout <<e<<endl;
	nn++;
	cout <<nn<<endl;
	fq=getch();
	if (nn>8){
		cout <<"not available(more than 6 after point)\n";
		return;}
	}
	while (e%10!=0);
	if (n<=nn-1){
		e=f*(double)pow(10, (double)n);
		f=e/(double)pow(10,(double)n);
		cout <<f<<endl;}
}

Последний раз редактировалось Stilet; 27.08.2014 в 21:51.
Vladislavv вне форума Ответить с цитированием
Старый 29.08.2014, 23:07   #2
Gekan
Пользователь
 
Регистрация: 29.06.2012
Сообщений: 39
По умолчанию

Возможно, потому что тип int не может вобрать в себя очень большие значения.
Попробуйте long long, например.
Gekan вне форума Ответить с цитированием
Старый 02.09.2014, 12:58   #3
Vladislavv
Пользователь
 
Регистрация: 30.07.2014
Сообщений: 35
По умолчанию

все равно доходит до 9 цифры (если 0,135415431654654) и дает непонятные числа
Vladislavv вне форума Ответить с цитированием
Старый 02.09.2014, 13:49   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Может быть, e нужно преобразовать к типу double?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 02.09.2014, 14:37   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение
Может быть, e нужно преобразовать к типу double?
твою меть. но, почему это нужно делать внутри блока и к тому-же через приведение типов. Маразм процветает не только в политике...
ТС, как думаете, нахрена, вообще, в С++ введена типизация? Б****. Я - фонарею.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 02.09.2014 в 14:40.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить кол-во знаков после запятой k1r1ch Общие вопросы Delphi 3 21.03.2023 11:18
как отрегулировать кол-во знаков после запятой, при выведении числа(delphi) photozaz Общие вопросы Delphi 11 10.02.2011 21:20
Красивый способ выяснить кол-во знаков после запятой у double Kn793 Помощь студентам 1 27.03.2010 08:34
Разделение чисел на до запятой и после запятой msser Microsoft Office Excel 8 23.10.2009 11:57
кол-во знаков после запятой в TEdit Petrucci Общие вопросы Delphi 9 04.07.2008 13:15