提问者:小点点

如何将值textbox type=number转换为十进制


我在ASP.NET webform中有一个属性类型设置为number的TextBox,如下所示:

<asp:TextBox runat="server" ID="Price" placeholder="Price" Type="Number" step=".01" />

我很难将它的值转换为十进制,因为尽管对十进制使用分隔符,但我总是得到一个整数,例如:

1.23至123.00


共1个答案

匿名用户

您的问题在于您要传递进行转换的CultureInfo,看起来小数的“it-it”标准是使用逗号而不是点。下面是一个例子:

var x = "1,23";             
Console.WriteLine(Convert.ToDecimal(x, new CultureInfo("it-IT")));
        
var y = "1.23";
Console.WriteLine(Convert.ToDecimal(y, new CultureInfo("it-IT")));

对于使用指定的CultureInfo的代码,您需要在转换时将点替换为逗号,或者完全删除CultureInfo规范并继续使用点。

此外,如果您正在转换此选项以显示价格标签,您也可以使用此选项:

Convert.ToDecimal("1,23").ToString("C", new CultureInfo("it-IT"))