Enviado em 09/12/2024 - 00:16h
Ola galera beleza?
Fiz o seguinte programa em c++:
O porgrama gera a saida:
O objetivo é contar a quantidade de casas decimais após o primeiro ponto, criar um numero divisor com a mesma quantidade de casas decimais, e entao dividir o numero decimal por este numero gerado, o problema é que nao estou entendendo como pegar o valor concatenado completo e dividir pela parte decimal ou seja converter a string em double sem que "std::stod" trunque a quantidade de casas do numero concatenado, como converter o numero gerado para double e realizar a divisão corretamente como segue abaixo:
wiki.anon
Fiz o seguinte programa em c++:
#include <cmath>
#include <string>
#include <sstream>
#include <iomanip>
#include <iostream>
size_t countNumber(const double& number)
{
double n = number;
std::string numberStr = std::to_string(n);
size_t pos = numberStr.find('.');
if (pos != std::string::npos)
{
size_t count = (numberStr.length() - 1);
}
return count;
}
std::string concatNumber(const double& number)
{
double n = number;
std::string numberStr = std::to_string(n);
size_t pos = numberStr.find('.');
size_t count = (pos != std::string::npos) ? (numberStr.length() - 1) : (numberStr.substr(pos + 1).length());
std::string result = "1.";
for (size_t i = 0; i < count; ++i) result += "0";
return result;
}
int main()
{
double parteInteira, parteDecimal;
const double& number = 185.153989965;
size_t casasDecimais = countNumber(number);
parteDecimal = modf(number, &parteInteira);
//double numConcat = concatNumber(number);
std::cout << "\nParte Inteira.: " << parteInteira
<< "\nParte Decimal.: " << parteDecimal
<< "\nNumber concat.: " << concatNumber(number)
<< "\nCasas Decimais: " << casasDecimais
<< "\nValor Calculado.: (parteDecimal / numConcat)"
<< std::endl;
}
O porgrama gera a saida:
Parte Inteira.: 185
Parte Decimal.: 0.15399
Number concat.: 1.000000000
Casas Decimais: 9
Valor Calculado.: (parteDecimal / numConcat)
O objetivo é contar a quantidade de casas decimais após o primeiro ponto, criar um numero divisor com a mesma quantidade de casas decimais, e entao dividir o numero decimal por este numero gerado, o problema é que nao estou entendendo como pegar o valor concatenado completo e dividir pela parte decimal ou seja converter a string em double sem que "std::stod" trunque a quantidade de casas do numero concatenado, como converter o numero gerado para double e realizar a divisão corretamente como segue abaixo:
Valor Calculado.: (parteDecimal / numConcat)
wiki.anon