C# Currency to string

后端 未结 10 2814
旧巷少年郎
旧巷少年郎 2021-02-19 10:52

I am querying a database field that returns a money value, I am assigning this to a string but it is adding extra 00 on the end.

e.g. Query returns 30.00

相关标签:
10条回答
  • 2021-02-19 11:19

    You can use string format codes in your ToString call.

    0 讨论(0)
  • 2021-02-19 11:20

    MartGriff,

    My best advice would be to convert it to a double using the SqlMoney type. From there, you can output it however you would like!

    Here's an example:

    System.Data.SqlTypes.SqlMoney ReturnValue;
    
    //Set your returnValue with your SQL statement
    ReturnValue = ExecuteMySqlStatement();
    
    //Get the format you want
    
    //$30.00
    string currencyFormat = ReturnValue.ToDouble().ToString("c");
    
    //30.00
    string otherFormat = ReturnValue.ToDouble().ToString("0.00");
    

    For more formatting options, check out the MSDN:

    http://msdn.microsoft.com/en-us/library/system.double.tostring.aspx

    Best of luck, I hope this helps.

    0 讨论(0)
  • 2021-02-19 11:20

    The Money data type has a precision of 4 decimal places. You'll need to either specify the format in the ToString() arguments or you can round off the value before converting to a string.

    If you use .ToString() you're not getting any rounding as far as I know. I think you just lose the digits.

    If you round, you're not just chopping off digits. Here's a sample for rounding (untested code):

    string value = Math.Round(ReturnValue, 2).ToString();
    
    0 讨论(0)
  • 2021-02-19 11:23
    string value = (Convert.ToDecimal(ReturnValue)).ToString("c");
    

    c is for currency p for percentage. There is a list of other letters you can use.

    0 讨论(0)
  • 2021-02-19 11:29

    Try this:

    yourValueHere.ToString("0.00")
    
    0 讨论(0)
  • 2021-02-19 11:32

    Do you want your string formatted using a currency character?

    If so...

    decimal m = 3.4;
    
    string s = string.Format("{0:c}", m);
    
    // s will be £3.40, $3.40, etc depending on your locale settings
    
    0 讨论(0)
提交回复
热议问题