3

私はいくつかの同様の投稿からの情報を使用してこの変換(10進数?から文字列へ)を試みましたが、どういうわけか失敗しました( "G29"; replace( "0,00"、 "")...)ので、最善の方法は何でしょうか91,5M 10進数を変換するには? 91,5になるようにひもでつなぐには?

    string a;
    decimal? number = 91.5M;
    a =  number.ToString(); 

この例では a = 91.5 で、すべて問題ありません。しかし、いくつかの奇妙な理由で、Oracle db から一連のオブジェクトを取得し、末尾にゼロを付けずにこの特定の形式に変換しようとすると、これを行う方法が見つかりません。常に最終出力が 91,50 になるためです。 91,5の

4

2 に答える 2

2
var a = number.ToString("G29");

これにより、出力文字列の末尾のゼロが削除されます。非常に小さな値が「xEx」形式で表現される限り、これには潜在的な欠陥があります。これがあなたにとって問題かどうかはわかりません。

于 2012-12-19T08:01:27.820 に答える
1

先行ゼロなしで最大 1 つの小数点以下桁数が必要場合は、これを試すことができます。

string str = number.ToString("0.#");

さらに追加する#と精度が向上しますが、結果には重要でない数字は含まれません。末尾のゼロを保持する必要がある場合は、に#置き換えます。0

IFormatProvider2 番目のパラメーターを使用して、区切り記号の形式を指定することもできます。

string str = number.ToString("0.#", fr-FR); // 5 => 5   5,123 => 5,1 (comma)
string str = number.ToString("0.#", en-US); // 5 => 5   5,123 => 5.1 (dot)
于 2012-12-19T08:32:50.027 に答える