私が現在行っているプログラムでは、大きな浮動小数点数を格納する必要があります。私は文字列として格納していますが、これは正常に動作しています(もちろん、私は必要な演算子をいくつかオーバーロードしなければなりませんでした)(私は多倍精度算術ライブラリを使用することはできません)。今、私は数字の小数部分を取得し、それを文字列として格納する方法を探しています。私はstringstreamを使用して無視することを考えましたが、それは動作していないようです。これは何もしないので、私のコードに何か間違っていますか?それとも、それを達成するためのいくつかの他の方法は、(私も、ドットまでの流れを反復でしょうループについてその仕事をだろうと考えたのか?)私は何を達成しようとしているが、これを取得することです文字列として格納された数値の小数部を取得する
string toDecimal(string x)
{
string decimalValue;
stringstream x2(x);
x2 >> x;
x2.ignore(100, '.'); //it can have up to 100 places before the dot
decimalValue = x2.str();
cout << decimalValue << end;
return decimalValue;
}
あり:このから
18432184831754814758755551223184764301982441
:空想stringstream
または何を使用せずに
18432184831754814758755551223184764301982441.4321432154
したがって、部分文字列を先頭から最初のドットに変換したいのですか? 'std :: string :: find'を使ってドットを見つけ、' std :: string :: substr'を使って部分文字列を始めからドット位置に得ることができます。 – michalsrb
通常、 '.'の左側は全体の部分で、' .'の左側は小数部分です。いずれかの場合は、 'find'と' erase'を使って不要な部分を削除してください。 – NathanOliver
@ NathanOliver *右*;) – Quentin