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