1

我有一个十进制值存储为“12.3456”的数据库我希望它显示给客户端为“12.34”

我正在使用下面的代码。

<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}")%>

我希望格式是这样的

12.3456 --> 12.34

但它给了我这个。

12.3456 --> 12.3500

我不确定我是否遗漏了什么或做错了什么。


更新

我最终用asp:Label而不是<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}")%>

Label Price.Text = Math.Truncate(12.3456* 100) / 100).ToString();

这给了我:

12.34

但如果数字是12.1000它给我的:

12.1

我需要它的12.10格式

4

4 回答 4

1

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

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

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings

于 2013-10-12T10:02:25.643 回答
0

你可以这样尝试:-

 <%# DataBinder.Eval(Container.DataItem, "Price", "{#.00}")%>

编辑:-

我认为您需要不四舍五入的值。你可以这样尝试:-

var f = 12.3456;
f = Math.Truncate(f * 100) / 100;
于 2013-10-12T10:03:54.643 回答
0

您可以使用

Math.Floor(12.3456*100) / 100 ;
于 2013-10-12T11:05:51.123 回答
0

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

于 2016-01-26T19:07:18.797 回答