渡された数値 (inputValue) で最大の 1 桁を見つけることになっている関数を C++ で作成しています。たとえば、.345 の答えは 5 です。ただし、しばらくすると、プログラムは inputValue を .3449 の行に沿って何かに変更します (そして、最大の桁が 9 に設定されます)。なぜこれが起こっているのか分かりません。この問題を解決するための助けをいただければ幸いです。
これは私の .hpp ファイルの関数です
void LargeInput(const double inputValue)
//Function to find the largest value of the input
{
int tempMax = 0,//Value that the temporary max number is in loop
digit = 0,//Value of numbers after the decimal place
test = 0,
powerOten = 10;//Number multiplied by so that the next digit can be checked
double number = inputValue;//A variable that can be changed in the function
cout << "The number is still " << number << endl;
for (int k = 1; k <= 6; k++)
{
test = (number*powerOten);
cout << "test: " << test << endl;
digit = test % 10;
cout << (static_cast<int>(number*powerOten)) << endl;
if (tempMax < digit)
tempMax = digit;
powerOten *= 10;
}
return;
}