Ole*_*nge 22 c# string-formatting
如何在.NET中将数字格式化为百分比而不显示百分号?
如果我有数字0.13并使用格式字符串{0:P0}输出13 %.
但是我想13改为,而不必将数字乘以100并使用格式字符串{0:N0}.
(背景:在ASP.NET中,我有一个带有BoundField的GridView,我想在其中显示一个数字,但不显示百分号(%).我该怎么做?)
谢谢你的回答.在编辑时,如上所述,在6个中有4个表示我想要避免的内容.我一直在寻找一种只使用格式字符串的方法,并避免乘以100并使用{0:N0},但答案表明这是不可能的......
使用理查德接受的解决方案解决:
public class MyCulture : CultureInfo
{
public MyCulture()
: base(Thread.CurrentThread.CurrentCulture.Name)
{
this.NumberFormat.PercentSymbol = "";
}
}
Thread.CurrentThread.CurrentCulture = new MyCulture();
Run Code Online (Sandbox Code Playgroud)
Ric*_*ard 16
定义自己的自定义文化,该文化NumberFormatInfo返回String.Empty其PercentSymbol属性.
然后将该自定义文化用于受影响的页面(或整个应用程序).这可以通过从默认值克隆来完成,以便保留其他区域设置.
pax*_*blo 14
为什么不将数字乘以100并使用"{0:N0}"格式字符串?在我看来,这是最简单的解决方案.
除非你能提出一个可行的理由,为什么那是不可能的,这是我的建议.这不是火箭科学 :-)
但乘以100正是你想要的!
protected void myGrdiView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
myObjectType ot = (myObjectType)e.Row.DataItem;
ot.myNumber = ot.myNumber * 100; // multiply by 100
}
}
Run Code Online (Sandbox Code Playgroud)
并在HTML中
<asp:BoundField DataType="myNumber" HeaderText="%" StringFormat="{0:N0}" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29559 次 |
| 最近记录: |