0

文字列を小数点以下7桁のdoubleに変換するのに助けが必要です。文字列が"00000827700000"あり、82.77に変換する必要があります

{0:N7}でString.Format()を使用しようとしましたが、成功しませんでした。

4

2 に答える 2

7

次のものを使用できるようです。

decimal x = decimal.Parse(text.Substring(0, 7) + "." +
                          text.Substring(7),
                          CultureInfo.InvariantCulture);

後続のゼロを(ある程度まで)保持するため、実際には82.7700000に解析されますが、それでdecimal十分でしょうか?そうではなく、2番目の引数を次のように変更できます

text.Substring(7).TrimEnd('0')

少なくとも、の代わりに使用することを検討することを強くお勧めします。この値が何を表すかについては説明していませんが、保存する必要のある10進数として保存すると、私にはもっと匂いがします。decimaldoubledecimal

于 2012-06-19T20:25:21.123 に答える
3

編集に基づいて、それは次のように簡略化することができます

var text = "00000827700000";
var x = decimal.Parse(text, CultureInfo.InvariantCulture) / 10000000;
Console.Write(String.Format("{0:N7}", x));
于 2012-06-19T20:29:50.427 に答える