asp.net C# 十进制格式钱

本文关键字:格式 十进制 net asp | 更新日期: 2023-09-27 18:34:57

我有一个十进制值存储db为"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格式的它

asp.net C# 十进制格式钱

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

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

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

你可以

这样尝试:-

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

编辑:-

我认为您需要这些值而不对其进行四舍五入。你可以这样尝试:-

var f = 12.3456;
f = Math.Truncate(f * 100) / 100;
您可以使用

Math.Floor(12.3456*100) / 100 ;

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