删除所有小数点并放一个%

时间:2012-09-07 13:26:34

标签: c#

我想从小数值中删除所有小数点,并在末尾添加'%'。 我正在尝试使用以下代码。

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

这使得10.0000到10。 但有没有办法可以在10?之后加上'%'

编辑: 我在表格中显示数据。有些行有折扣价值,有些行没有。 所以我的查询返回null或折扣值。

我只想在那些有折扣价值的行中显示(%)。我不想只在那些没有任何折扣价值的行中显示(%)。

希望它能更好地解释这个问题。

5 个答案:

答案 0 :(得分:4)

使用standard format strings

<%:(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为空,则应将值留空。

为了格式化单个数值,ToStringstring.Format略微更有效,因为string.Format有一堆开销来解析大括号中的格式字符串,然后通过它到ToString

答案 2 :(得分:1)

%添加到您的格式字符串。

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

答案 3 :(得分:1)

试试这个;

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

您还可以使用Math.FloorMath.RoundMath.Ceil来更好地进行舍入。

答案 4 :(得分:0)

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

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