MSDN > 論壇首頁 > .NET Base Class Library > Globalization.CultureInfo - CurrencyGroupSizes
發問發問
 

已答覆Globalization.CultureInfo - CurrencyGroupSizes

  • 2008年6月6日 上午 02:45avinashraj 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    Hello,

    The WinXp 'Customize Regional Options' dialog lets me select one of following three options for Digit Grouping -

    a) 123456789
    or
    b) 123, 456, 789
    or
    c) 12,34,56,789 and of course the grouping and decimal separator etc.

    Using .Net 2.0, and trying to read the CurrencyGroupSizes property returns an array with length 1 and group size = 3 for both option a and b.

    What I'd like to know is, how does one differentiate b/w the two options programatically ? I would like to perform specific processing in my application based on what the user has configured in his install of XP.

    Also the Display Leading Zeros option in the customize dialog, I could not find any matching property in the NumberFormat name space. How might I know what the user has set in XP without doing a win32 call ?

    Any ideas will be great.
    Regards,
    Avinash

解答

  • 2008年6月6日 下午 12:25nobugzMVP, 版主使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆
    Regional Options and NumberFormatInfo are an imperfect match.  You can in fact change settings that will prevent the framework from functioning properly.  There is no workaround I'm aware of that fixes all of the possible issues.  In your case, I'd parse a formatted currency value to see what options might have been selected by the user that would affect your output.
    Hans Passant.
    • 已標示為解答avinashraj 2008年6月9日 上午 07:34
    •  

所有回覆

  • 2008年6月6日 下午 12:25nobugzMVP, 版主使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆
    Regional Options and NumberFormatInfo are an imperfect match.  You can in fact change settings that will prevent the framework from functioning properly.  There is no workaround I'm aware of that fixes all of the possible issues.  In your case, I'd parse a formatted currency value to see what options might have been selected by the user that would affect your output.
    Hans Passant.
    • 已標示為解答avinashraj 2008年6月9日 上午 07:34
    •  
  • 2008年6月9日 上午 07:39avinashraj 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    Thanks Hans. I tried doing that too.. but it seemed to me that x.ToString() [also tried other over loads with format 'C' , 'N' etc and also  explicitly passing in IformatInfo etc], it did not seem to respect my setting a) 123456789. It always seemed to include group separators.

    But I'm not fully certain and might have missed something. Will try it again and see how it goes. Atleast, I now know that ther's no straight forward API that I might have missed.

    Thanks again.

    Regards,

    Avinash