Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Сложение вещественных чисел с++  (Прочитано 1107 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dek61

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
    • Заметки программиста
Сложение вещественных чисел с++
« : 28 Марта 2012, 10:36:31 »
Объясните, почему так? :)

Код: (c) [Выделить]
#include <iostream>
using namespace std;
int main()
{
int n=2;
float s=1;
s+=1/n;
cout << n << "   " << s << endl;
return 0;
}

А в итоге получается, что s=1, вместо 1,5...

dek@Inspiron-N5110:./307
2   1
« Последнее редактирование: 28 Марта 2012, 20:34:05 от yorik1984 »
Мой блог - возможно здесь Вы найдёте интересующую Вас статью.

Оффлайн Белый пони

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Re: Сложение вещественных чисел с++
« Ответ #1 : 28 Марта 2012, 13:42:04 »
Код: (c) [Выделить]
#include <iostream>
using namespace std;
int main()
{
int n=2;
float s=1;
s+=1/n;
cout << n << "   " << s << endl;
return 0;
}

 Выражение 1/n преобразуется к типe n, т.е. int, т.е. дробная часть просто отбрасывается и получается s += 1;
« Последнее редактирование: 28 Марта 2012, 20:34:16 от yorik1984 »

Оффлайн Dek61

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
    • Заметки программиста
Re: Сложение вещественных чисел с++
« Ответ #2 : 28 Марта 2012, 13:51:30 »
Спасибо :) А как исправить?
Только менять тип n или можно как-то иначе?
« Последнее редактирование: 28 Марта 2012, 13:53:53 от Dek61 »
Мой блог - возможно здесь Вы найдёте интересующую Вас статью.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: Сложение вещественных чисел с++
« Ответ #3 : 28 Марта 2012, 13:57:52 »
1.0/n
Извините, я все еще учусь

Оффлайн Dek61

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
    • Заметки программиста
Re: Сложение вещественных чисел с++
« Ответ #4 : 28 Марта 2012, 14:00:03 »
Спасибо большое :)
Мой блог - возможно здесь Вы найдёте интересующую Вас статью.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Сложение вещественных чисел с++
« Ответ #5 : 28 Марта 2012, 14:15:43 »
Белый пони,
ничего там не отбрасывается
там просто случается целочисленное деление

Оффлайн Белый пони

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Re: Сложение вещественных чисел с++
« Ответ #6 : 28 Марта 2012, 15:09:06 »
Белый пони,
ничего там не отбрасывается
там просто случается целочисленное деление
При целочисленном делении дробная часть результата и отбрасывается.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Сложение вещественных чисел с++
« Ответ #7 : 28 Марта 2012, 20:31:18 »
посмотри что там происходит на ассемблере, а потом рассказывай что там отбрасывается.
отбрасывается - это наблюдаемое явление которое вводит тебя в заблуждение.

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: Сложение вещественных чисел с++
« Ответ #8 : 09 Апреля 2012, 14:28:23 »
Закрыто.

 

Страница сгенерирована за 0.034 секунд. Запросов: 22.