Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 51
1

Функция floor для округления значения до определённого числа знаков дробной части

13.06.2017, 17:59. Просмотров 1010. Ответов 7
Метки нет (Все метки)

Всем привет ребята. кто мог бы объяснить где и что неправильно у меня в коде и как это исправить. Благодарю за внимание.
Условие задачи:
Функция floor может использоваться для округления значения до определённого числа знаков дробной части. Оператор y = floor(x * 10 + .5)/10; округляет x с точностью до одной десятой (первая позиция справа от десятичной точки)ю Оператор y = floor(x * 100 + .5) округляет x с точностью до одной сотой. напишите программу, которая определяет четыре функции для округления x различными способами:
a) roundToInteger(number)
b) roundToTenths(number)
c) roundToHundredths(number)
d) roundToThousandths(number)
Тоесть вводим какое либо число округляем и выводим округлив до целых, десятых,сотых и тысячных.
КОД:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<iostream>
using namespace std;
 
int roundToInteger(float);
float roundToTenths(float);
float roundToHundreadths(float);
float roundToThousandths(float);
 
int main()
{
    float x;
    cout << "Enter the first number:  ";
    cin >> x;
    roundToInteger(x);
    roundToTenths(x);
    roundToHundreadths(x);
    roundToThousandths(x);
    system("pause");
    return 0;
}
 
int roundToInteger(float x)
{
    float y;
    y = floor(x + .5);
    return y;
}
 
float roundToTenths(float x)
{
float y;
y = floor(x * 10 + .5);
return y;
}
 
float roundToHundreadths(float x)
{
    float y;
y = floor(x * 100 + .5);
return y;
}
 
float roundToThousandths(float x)
{
    float y;
y = floor(x * 1000 + .5);
return y;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2017, 17:59
Ответы с готовыми решениями:

Функция, округляющая вещественные числа до определённого количества знаков
Написать функцию, которая округляет любое вещественное число до определённого количества знаков с...

Округление константы (более 15 знаков в дробной части)
Здравствуйте, уважаемые форумчане! Решаю несложную задачу, но возникают некоторые проблемы. Есть...

Какими функциями лучше пользоваться для округления и получения дробной части?
Доброе время на циферблате! 1. Как работает функция int в других языках она должна отбрасывать...

Проверка количества знаков дробной части числа
Ребят, подскажите пожалуйста такую вещь: есть у меня переменная double a, пользователь вводит с...

7
6907 / 5972 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
13.06.2017, 18:20 2
Деление где?
0
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 51
13.06.2017, 19:11  [ТС] 3
Действительно забыл )

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<iostream>
using namespace std;
 
int roundToInteger(float);
float roundToTenths(float);
float roundToHundreadths(float);
float roundToThousandths(float);
 
int main()
{
    float x;
    cout << "Enter the first number:  ";
    cin >> x;
    roundToInteger(x);
    roundToTenths(x);
    roundToHundreadths(x);
    roundToThousandths(x);
    system("pause");
    return 0;
}
 
int roundToInteger(float x)
{
    float y;
    y = floor(x + .5);
    return y;
}
 
float roundToTenths(float x)
{
float y;
y = floor(x * 10 + .5)/10;
return y;
}
 
float roundToHundreadths(float x)
{
    float y;
y = floor(x * 100 + .5)/100;
return y;
}
 
float roundToThousandths(float x)
{
    float y;
y = floor(x * 1000 + .5)/1000;
return y;
}
Добавлено через 2 минуты
но всё также... Даёт вводить число а потом "Press any key to continue. . . "
0
Эксперт C
24523 / 15150 / 3203
Регистрация: 24.12.2010
Сообщений: 32,489
13.06.2017, 19:18 4
Цитата Сообщение от RedRaider Посмотреть сообщение
Даёт вводить число а потом "Press any key to continue. .
Так ты числа-то не выводишь...
А вообще-то, лучшее округление до целого, которое я знаю
C++
1
int k = (int)(x + 0.5);
1
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 51
13.06.2017, 19:35  [ТС] 5
Понял. Можеш ещё одну объяснить пожалуйста. Тут надо использовать random numbers и выводить их в определёном диапазоне
1-й диапазон : 1 <= n <= 2 n-это самое случайное число.
2-й диапазон: 1<= n <= 100
так вот,второй диапазон выводит нормально случайные числа а первый нет, мне первый надо чтоб выводил к примеру 1.1 || 1.4 || 1.9

1-й диапазон
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<cstdlib>
#include<ctime>
 
using namespace std;
 
int main()
{
float n;
srand(time(NULL));
 
n = 1 + rand()%(2 - 1 + 1);
cout << n << endl;
system("pause");
return 0;
 
}
2-й диапазон

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<cstdlib>
#include<ctime>
 
using namespace std;
 
int main()
{
float n;
srand(time(NULL));
 
n = 1 + rand()%(100 - 1 + 1);
cout << n << endl;
system("pause");
return 0;
 
}
0
Эксперт C
24523 / 15150 / 3203
Регистрация: 24.12.2010
Сообщений: 32,489
13.06.2017, 19:48 6
Цитата Сообщение от RedRaider Посмотреть сообщение
мне первый надо чтоб выводил к примеру 1.1 || 1.4 || 1.9
C++
1
float n = (10 + rand()%10) / 10.0;
1
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 51
13.06.2017, 20:03  [ТС] 7
а что за общая формула у этого метода(к примеру если надо будет в другом диапазоне найти).
0
Эксперт C
24523 / 15150 / 3203
Регистрация: 24.12.2010
Сообщений: 32,489
13.06.2017, 21:07 8
Цитата Сообщение от RedRaider Посмотреть сообщение
а что за общая формула у этого метода(к примеру если надо будет в другом диапазоне найти).
Да вы подумайте немного. Посмотрите, какие числа получаются ...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2017, 21:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

выделение значения минут из дробной части десятичного числа
Всем привет. Такая задача: получаю от компа время в виде ЧЧ.хххххх, по сути это число типа ftoot,...

Функция вывода на экран N первых двоичных разрядов дробной части вещественного числа
Напишите функцию, которая получает на вход вещественное число X (double, 0&lt;X&lt;1) и натуральное число...

Округление до 2-х знаков в дробной части
Как в JS округлить число до 2-х знаков после запятой? Спасибо.

До 2-х знаков в дробной части округление
Как в JS округлить число до 2-х знаков после запятой? Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.