2016-11-17 9 views
2

item.Sizeから最後の6文字を削除しようとしています。これは、データに小数点以下の桁数と5桁の末尾の0があるためです。この値をスライス/トリムする方法は?

sb.Append("<div>" + item.Size + " " + item.Units + "&nbsp;</div>"); 

ie。 item.Sizeは1.00000と表示され、ちょうど1として表示する必要があります。

これはStringBuilderの一部であり、私はこれを初めて熟読しています。

+0

decimal.Truncate(10進数) - > 123.456小数123に切り捨て。 –

+1

'Size'が数値の場合、なぜ' string'に格納されますか? – juharr

+0

'Convert.ToInt32(item.Size)' – vbguyny

答えて

3
sb.Append("<div>" + (int)item.Size + " " + item.Units + "&nbsp;</div>"); 
+0

は 'Size'が文字列の場合には機能しません – Jonesopolis

+0

これは魅力的に機能しました、ありがとうございます! –

+0

@ Jonesopolisデータ型の2倍または10進数より100ポイント先:-) – user1681317

0

StringBuilderあなたがAppendFormatメソッドを使用する場合String.Formatと同じ書式設定機能を持っています

sb.AppendFormat("<div>{0:N0} {1}&nbsp;</div>", item.Size, item.Units); 

フォーマット文字列「N0は」0小数点に番号をフォーマットするよう指示します。これは、item.Sizeが数値型として格納されていることを前提としています。値が実際にあなたがあなたの例で示したもののようなものであると仮定すると、私はSplitを使用しました。ここ

sb.AppendFormat("<div>{0} {1}</div>", item.Size.Split('.')[0], item.Units); 

:いない場合は、単にあなたがしたくない文字列の一部を削除します。

0

int.TryParse(またはInt32.TryParse)の方法を使用すると便利です。 item.Sizeintに変換できない場合、例外はありません。あなたの選択に応じてintまたはlongを使用することができます。 if/else条件に従ってコード内でこれを処理できます。

サンプルコード:

int size; 
    string str = ""; 
    if(int.TryParse(str, out size) == true) 
    { 

    } 
    else 
    { 

    } 
関連する問題