0

10進値からすべての小数点を削除し、最後に「%」を追加したいと思います。私は次のコードで試しています。

<%:string.Format("{0:0}",i.discount) %>

これで10.0000から10になります。しかし、10の後に「%」を付ける方法はありますか?

編集:私はテーブルにデータを表示しています。一部の行には割引値があり、一部の行には割引値がありません。したがって、クエリはnullまたは割引値を返します。

割引値のある行の(%)のみを表示したいと思います。割引値がない行に(%)だけを表示したくありません。

それが質問をよりよく説明することを願っています。

4

5 に答える 5

4

標準形式の文字列を使用する:

<%:(i.discount / 100).ToString("P0") %>

%文字列の最後にを追加するだけです。

<%:string.Format("{0:0}%",i.discount) %>

または、文字列の後に、マークアップに埋め込みます。

<%:string.Format("{0:0}",i.discount) %>%
于 2012-09-07T13:27:45.450 に答える
3

試す

<%:i.discount.ToString("P0") %>

または、

<%:string.Format("{0:P0}", i.discount) %>

これは数値に100を掛けて、10.00を1000%にすることに注意してください。これはあなたが望むものではないかもしれません。

編集:あなたはこれがあなたが望むものではないことをあなたのコメントで示しているので、次のいずれかを試してください:

<%:(i.discount / 100.0).ToString("P0") %>
<%:string.Format("{0:P0}", i.discount / 100.0) %>

nullの場合、これらは値を空白のままにする必要i.discountがあります。

単一の数値をフォーマットする場合、中括弧からフォーマット文字列を解析してからに渡すためのオーバーヘッドがたくさんあるため、は、ToStringよりもわずかに効率的です。string.Formatstring.FormatToString

于 2012-09-07T13:28:40.070 に答える
1

%フォーマット文字列にを追加します。

<%:string.Format("{0:0}%",i.discount) %>
于 2012-09-07T13:27:43.020 に答える
1

これを試して;

<%:string.Format("{0:0}%",(int)i.discount) %>

Math.Floor、、Math.RoundまたはMath.Ceilより良い丸めを使用することもできます。

于 2012-09-07T13:28:37.857 に答える
0

パーセントフォーマッタを使用してみてください。

http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

于 2012-09-07T13:33:45.077 に答える