当我尝试从下拉列表中获取值时,我遇到了奇怪的错误。所有值都是十进制的,例如0.1,0.5,0.7等 当我转换为十进制时,我得到1,5,7,当我转换为双倍时,我得到1.0,5.0,7.0。 例如,以十进制或双精度值获取值为0.1或0.5的正确方法是什么? 谢谢,Laziale
示例:
<asp:DropDownList ID="ddlAgentPercEdit" runat="server">
<asp:ListItem Value="">Select Percentage</asp:ListItem>
<asp:ListItem Value="0.01">0.01</asp:ListItem>
<asp:ListItem Value="0.05">0.05</asp:ListItem>
<asp:ListItem Value="0.1">0.1</asp:ListItem>
<asp:ListItem Value="0.3">0.3</asp:ListItem>
<asp:ListItem Value="0.5">0.5</asp:ListItem>
<asp:ListItem Value="0.6">0.6</asp:ListItem>
<asp:ListItem Value="0.7">0.7</asp:ListItem>
<asp:ListItem Value="0.75">0.75</asp:ListItem>
<asp:ListItem Value="0.8">0.8</asp:ListItem>
<asp:ListItem Value="0.9">0.9</asp:ListItem>
<asp:ListItem Value="0.95">0.95</asp:ListItem>
<asp:ListItem Value="0.99">0.99</asp:ListItem>
</asp:DropDownList>
util.Update(Convert.ToInt32(hfLifee), Convert.ToDecimal(ddlAgentPercEdit.SelectedValue), Convert.ToDouble(ddlAgentPercEdit.SelectedValue));
我得到0.9的示例值:9,9.0。 我也试过单身,我得到9.0 感谢
答案 0 :(得分:3)
这是一个本地化问题。尝试使用CultureInfo.InvariantCulture
:
decimal d = decimal.Parse(ddl.SelectedValue, CultureInfo.InvariantCulture);
许多文化都使用千分之一而不是小数分隔符。