Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Sifoncheg
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 13
#1

Операция с плавающей запятой - C++

26.04.2011, 15:31. Просмотров 1815. Ответов 20
Метки нет (Все метки)

float f=13565.0;
float x=0.01;
float z=f+x;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2011, 15:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Операция с плавающей запятой (C++):

Числа с плавающей запятой
есть программа которая подсчитывает сумму чисел, введенных с командной строки. ...

Что-то не то с числами с плавающей запятой
Есть код на вычисление реккурентного соотношения, он работает +- нормально. Но...

Произведение чисел с плавающей запятой
Требуется реализовать произведение чисел с плавающей запятой, длинных чисел, к...

Число с плавающей запятой в строках
Задание - из строки выделить подстроку, задающую число с плавающей точкой.

Не выводит число с плавающей запятой
Добрый день! Испробовал и дабл и флоат, бесполезно, должно по идее выдать 0.5,...

Запись типов с плавающей запятой
интересует правильность записи типов с плавающей запятой. пример float k...

20
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
26.04.2011, 15:32 #2
Ага, прикольно и что ?
0
Sifoncheg
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 13
26.04.2011, 15:44  [ТС] #3
Там операция если я не ошибаюсь, связана со сдвигом...
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
26.04.2011, 16:02 #4
Там операция - обычное сложение.
0
LineStown
66 / 66 / 6
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
26.04.2011, 16:04 #5
Задача то какая не тривиальная, 2 float сложить\
0
Sifoncheg
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 13
26.04.2011, 16:17  [ТС] #6
просто сложение происходит в разных системах счисления
0
Evg
Эксперт CАвтор FAQ
18938 / 6899 / 513
Регистрация: 30.03.2009
Сообщений: 19,437
Записей в блоге: 30
26.04.2011, 16:18 #7
Цитата Сообщение от Sifoncheg Посмотреть сообщение
float f=13565.0;
float x=0.01;
float z=f+x;
По идее 38, но во время войны может быть и 39
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
26.04.2011, 16:22 #8
Цитата Сообщение от Sifoncheg Посмотреть сообщение
просто сложение происходит в разных системах счисления
Это с какого перепуга? Это просто два десятичных вещественных числа. Первое больше единицы, второе - меньше.
0
Sifoncheg
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 13
26.04.2011, 16:27  [ТС] #9
Цитата Сообщение от easybudda Посмотреть сообщение
Это с какого перепуга? Это просто два десятичных вещественных числа. Первое больше единицы, второе - меньше.


а если так можно просто сложить, или нужно преобразование какое то?
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
26.04.2011, 16:29 #10
Вы их уже сложили в первом сообщении.
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
26.04.2011, 16:36 #11
Цитата Сообщение от Sifoncheg Посмотреть сообщение
так вроде если первое число 0 то 8ричная?
Вы круглое с красным путаете.
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main(void){
    int num;
    
    while ( printf("Number: ") && scanf("%i", &num) == 1 )
        printf("10 based number: %d\n", num);
    
    return 0;
}
Код
$ ./10based
Number: 077
10 based number: 63
Number: 77
10 based number: 77
Number: 0x77
10 based number: 119
Number:
а
C
1
double val = 0.1;
это всё те же ноль целых одна десятая...
1
Sifoncheg
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 13
26.04.2011, 16:42  [ТС] #12
и будет 13565.01?
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
26.04.2011, 16:46 #13
C++
1
2
3
4
5
6
7
8
int main(int argc, char* argv[])
{
float f=13565.0;
float x=0.01;
float z=f+x;
printf("%.*f", 2, z);
return 0;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
26.04.2011, 16:47 #14
Цитата Сообщение от Sifoncheg Посмотреть сообщение
и будет 13565.01?
ну должно бы... а проверить - не?
0
Sifoncheg
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 13
26.04.2011, 17:11  [ТС] #15
1>e:\проекты с++\2010\фы\фы\фы.cpp(12) : warning C4305: 'initializing' : truncation from 'double' to 'float'
0
Evg
Эксперт CАвтор FAQ
18938 / 6899 / 513
Регистрация: 30.03.2009
Сообщений: 19,437
Записей в блоге: 30
26.04.2011, 17:14 #16
Цитата Сообщение от Sifoncheg Посмотреть сообщение
1>e:\проекты с++\2010\фы\фы\фы.cpp(12) : warning C4305: 'initializing' : truncation from 'double' to 'float'
После констант надо букву f ставить, если они float: 13565.0f 0.01f
А вообще - это предупреждение, а не ошибка. Компилятор сам это как бы сделает, но тебя уведомляет об этом
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
26.04.2011, 17:16 #17
Вообще лучше тип double для вещественных чисел. Но если так хочется, то вот:
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int main(void){
    float x = 1234.0F;
    float y = .01F;
    float z = x + y;
    printf("%.2f", z);
    return 0;
}
1
Sifoncheg
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 13
26.04.2011, 17:33  [ТС] #18
135656.02 получается. Почему?
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
26.04.2011, 17:37 #19
Цитата Сообщение от Sifoncheg Посмотреть сообщение
135656.02 получается. Почему?
Цитата Сообщение от easybudda Посмотреть сообщение
лучше тип double для вещественных чисел
у float погрешность очень большая.
1
Sifoncheg
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 13
26.04.2011, 17:59  [ТС] #20
Цитата Сообщение от easybudda Посмотреть сообщение
у float погрешность очень большая.
я так понимаю это связано с округлением, только непонятно каким образом
0
26.04.2011, 17:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2011, 17:59
Привет! Вот еще темы с решениями:

Сокращение числа с плавающей запятой
Ломал-ломал себе голову, ни как не смог понять как выполнить такую задачу...

Арифметика длинных чисел с плавающей запятой
Добрый вечер, есть ли у кого исходники основных операций * / + - больших чисел...

Ошибка в числах с плавающей запятой (калькулятор)
Пробую написать калькулятор. Все идет гладко, все, кроме запятой. К примеру,...

Класс : Число с плавающей запятой(точкой)
Подскажите,где можно побольше узнать о числах с плавающей запятой,желательно не...


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

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

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