我想从十进制值中删除所有小数点并在末尾添加一个“%”。我正在尝试使用以下代码。
<%:string.Format("{0:0}",i.discount) %>
这使得 10.0000 到 10。但是有什么办法可以在 10 之后加上“%”吗?
编辑:我在表格中显示数据。有些行有折扣值,有些行没有。所以我的查询返回 null 或折扣值。
我只想在那些行中显示具有折扣价值的 (%)。我不想在那些没有任何折扣值的行中只显示 (%)。
希望它能更好地解释这个问题。
我想从十进制值中删除所有小数点并在末尾添加一个“%”。我正在尝试使用以下代码。
<%:string.Format("{0:0}",i.discount) %>
这使得 10.0000 到 10。但是有什么办法可以在 10 之后加上“%”吗?
编辑:我在表格中显示数据。有些行有折扣值,有些行没有。所以我的查询返回 null 或折扣值。
我只想在那些行中显示具有折扣价值的 (%)。我不想在那些没有任何折扣值的行中只显示 (%)。
希望它能更好地解释这个问题。
使用标准格式字符串:
<%:(i.discount / 100).ToString("P0") %>
您可以简单地添加%
到字符串的末尾:
<%:string.Format("{0:0}%",i.discount) %>
或者,在字符串之后,嵌入标记中:
<%:string.Format("{0:0}",i.discount) %>%
尝试
<%: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
.
添加%
到您的格式字符串。
<%:string.Format("{0:0}%",i.discount) %>
尝试这个;
<%:string.Format("{0:0}%",(int)i.discount) %>
您也可以使用Math.Floor
,Math.Round
或Math.Ceil
进行更好的舍入。
尝试使用百分比格式化程序: