0

我想从十进制值中删除所有小数点并在末尾添加一个“%”。我正在尝试使用以下代码。

<%: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) %>

如果为空,这些值应留空i.discount

对于格式化单个数值,ToString效率略高于string.Format,因为string.Format从花括号中解析格式字符串然后将其传递给ToString.

于 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.RoundMath.Ceil进行更好的舍入。

于 2012-09-07T13:28:37.857 回答
0

尝试使用百分比格式化程序:

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

于 2012-09-07T13:33:45.077 回答