0

ドロップダウンから値を取得しようとすると、奇妙なエラーが発生します。すべての値は 0.1、0.5、0.7 などの 10 進数です。10 進数に変換すると 1、5、7 になり、倍精度に変換すると 1.0、5.0、7.0 になります。たとえば、10進数または2倍の値を0.1または0.5として取得する適切な方法は何ですか? ありがとう、ラツィアーレ

例:

   <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));

たとえば、値 9、9.0 の 0.9 を取得しています。私も試してみましたシングル、私は 9.0 を取得しています ありがとう

4

1 に答える 1

3

これはローカリゼーションの問題です。使用してみてくださいCultureInfo.InvariantCulture

decimal d = decimal.Parse(ddl.SelectedValue, CultureInfo.InvariantCulture);

多くの文化では、ポイントを小数点としてではなく千単位で使用しています。

デモ

于 2013-06-04T11:16:00.020 に答える