asp.net C#十进制格式货币

asp.net C#十进制格式货币,c#,asp.net,formatting,decimal,C#,Asp.net,Formatting,Decimal,我有一个十进制值存储为“12.3456”,我想它显示给客户端为“12.34” 我正在使用下面的代码 <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}")%> 但它却给了我这个 12.3456 --> 12.3500 我不确定我是否遗漏了什么或做错了什么 更新 我最终使用了asp:Label而不是 这给了我: 12.34 但是如果数字是12.1000它会给我: 12.1 我需要它的12.10格式使用格式字符串

我有一个十进制值存储为“12.3456”,我想它显示给客户端为“12.34”

我正在使用下面的代码

<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}")%>
但它却给了我这个

12.3456 --> 12.3500
我不确定我是否遗漏了什么或做错了什么


更新

我最终使用了
asp:Label
而不是

这给了我:

12.34
但是如果数字是
12.1000
它会给我:

12.1
我需要它的
12.10
格式

使用格式字符串#.00始终显示到小数点后2位

Label price.Text = String.Format("{0:#.00}", 12.1000)

使用格式字符串#.00始终显示到小数点后2位

Label price.Text = String.Format("{0:#.00}", 12.1000)

您可以这样尝试:-

 <%# DataBinder.Eval(Container.DataItem, "Price", "{#.00}")%>
var f = 12.3456;
f = Math.Truncate(f * 100) / 100;

您可以这样尝试:-

 <%# DataBinder.Eval(Container.DataItem, "Price", "{#.00}")%>
var f = 12.3456;
f = Math.Truncate(f * 100) / 100;
你可以用

Math.Floor(12.3456*100) / 100 ;
你可以用

Math.Floor(12.3456*100) / 100 ;


.toString(C)‘C’代表货币

.toString(C)'C'代表货币

这将把
.3456
四舍五入到
.35
这是我需要的12.3500。34@user2873685:-更新了我的答案。看看这是否有帮助?因为我正在绑定一个项目列表,因为它们在代码隐藏中。我会做一个foreach循环作为最后手段。我想在标签中解决这个问题,因为我有很多这样的页面,所以我可以很容易地在所有页面中应用它。我最后做了一个foreach循环,将
.3456
四舍五入到
.35
这给了我12.3500我需要12个。34@user2873685:-更新了我的答案。看看这是否有帮助?因为我正在绑定一个项目列表,因为它们在代码隐藏中。我会做一个foreach循环作为最后手段。我想在标签中解决这个问题,因为我有很多这样的页面,所以我可以很容易地在所有页面中应用它。我最后在末尾做了一个foreach循环,这也给了我12.3500我需要12.34你确定吗,因为
Console.WriteLine({0:#.00}),12.3456)显示为
12.35
。你想把12.35改成12.34?这是我在中继器里的权利,我有12.3456分贝。页面上显示的是12.3500。那一定是其他东西在修改你的输出。这是从上面的格式化链接中获取的
0.45678(“0.00”,en-US)->0.46通过在中继器标签价格中添加标签控件解决了这个问题。Text=String.Format(“{0:#.00}”,12.1000)->12,10这也给了我12.3500我需要12.34你确定吗,因为
Console.WriteLine({0:#.00}),12.3456)显示为
12.35
。你想把12.35改成12.34?这是我在中继器里的权利,我有12.3456分贝。页面上显示的是12.3500。那一定是其他东西在修改你的输出。这是从上面的格式化链接中获取的
0.45678(“0.00”,en-US)->0.46
通过在中继器标签价格中添加标签控件解决了这个问题。Text=String.Format(“{0:#.00}”,12.1000)->12,10我需要反转这个问题,在模型中它是公共小数量{get;set;},但当我输入值时(29.0987)我得到30或0.1234,我得到0.12,但我需要精确的值,这是可能的,我需要这个问题的相反,在模型中,它是公共小数{get;set;},但当我输入值(29.0987)时,我得到30或0.1234,我得到0.12,但我需要精确的值,这是可能的