Пытаюсь получить в ответе переменную t2
не как тип int
, а как float
. Т.е. сейчас при вводе числа 457
у меня number two = 5
, а я хочу получить 5.7
. Код уже с примером, как я пытаюсь сделать, но всё равно выводит без десятых. Что я делаю не так?
int e, n;
float s, t2;
cout << "vvedite n\n";
cin >> n;
s = float(n) / 100 ; // первая цифра
t2 = float ((n / 10) % 10); // вторая цифра
e = n % 10; // третья цифра
cout << "number one = " << float(s) << endl;
cout << "number two = " << float(t2) << endl;
cout << "number fri = " << e << endl;
У вас переменная t2 и так является типом float. Операция "модуль" (%) не используется с типами с плавающей запятой. Выход - пользоваться функцией fmod из стандартной библиотеки. К тому же, чтобы получить 5.7 нужно несколько иначе считать.
#include <iostream>
#include <iomanip>
#include <cmath>
int main()
{
using namespace std;
int e, n;
float s, t2, t2fmod;
cout << "vvedite n \n";
cin >> n;
s = n / 100 ;
t2 = (n % 100) / 10.0; // (int) / (float) = (float); или static_cast<float>(10) -- глупо
// или
t2fmod = fmod(n, 100) / 10; // (float) / (int) = (float);
e = n % 10;
cout << "number one = " << s << endl;
cout << "number two = " << fixed << setprecision(1) << t2 << "(" << t2fmod << ")" << endl;
cout << "number three = " << e << endl;
}
Явные приведения типов в стиле Си ((type)variable
) нежелательны в C++. Лучше пользоваться операциями *_cast.
Из целого числа вы никогда не получите с помощью приведения вещественное с ненулевой дробной частью. Ей просто неоткуда там взяться. Если нужно получить хвост без старшего разряда, то самый простой вариант — просто выполнить вычитание целой части, связанной со старшим разрядом, перед делением:
int n = 457;
s = n / 100.0; // 4.57
t2 = (n - static_cast<int>(s) * 100) / 10.0; // 5.7
e = n % 10; // 7
При желании можно обернуть в цикл, чтобы работать не только с трехразрядными числами.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте, я написала алгоритм SHA-1, но он не правильно вычисляет сам хеш, можете посмотреть в чем может быть проблема, я уже несколько часов...
Подскажите свободно распространяемую библиотеку (совместимую с Windows) или исходник, в котором из JPEG файла выделялись квантованные косинусные...
Вот функция, перепробовал десятки вариантов, но не могу понять, где здесь утекает память? Проверял банальным вызовом функции 1000 раз, забирало...
Придумал задачу и пытаюсь ее решить: хочу поставить пароль на жесткий диск, и сделать это на C++При помощи каких библиотек/классов это можно...