-1

私は次のコードを使用しています:

string new = old.Substring(0,2).TrimStart('0') + "." + old.Substring(2,2).TrimStart('0');

次のように変換します。

0101 >> 1.1
99.10 >> 99.1
99.01 >> 99.01

問題は、次の変換が正しく機能しないことです。

0100 >> 1.0

これを修正する簡単な方法はありますか?正しく変換されない理由がわかりません。後ろに「.0」を付けることが重要です。上記を実行すると、「1」が表示されます。

4

2 に答える 2

0

TrimStartは、文字列で始まるすべての0を常に削除します。したがって、2番目の部分は次のようになります。

"00".TrimStart('0')

これは常に空の文字列を生成します。

代わりにこれを試して、常に0になるようにしてください。

string new = old.Substring(0,2).TrimStart('0') + "." + 
             old.Substring(2,2).TrimStart('0').PadLeft(1, '0');
于 2012-05-03T16:00:26.943 に答える
0

Int32.TryParse()を呼び出して、100で割ることができますか?

string s = "0101";
int n;
if(int.TryParse(s, out n))
{
  decimal d = n / 100M;
  string x = d.Format("f2");
}
于 2012-05-03T16:04:59.820 に答える