How to convert to double with 2 precision - string after dot?

后端 未结 3 1104
逝去的感伤
逝去的感伤 2020-12-09 08:35

I want to convert this string: 0.55000000000000004 to this double: 0.55. How to do that?

相关标签:
3条回答
  • 2020-12-09 09:04

    There is no double 0.55 - the number cannot be accurately represented as a binary fraction. Which is probably the reason why you got that long string in the first place. You should probably be using the decimal type instead of double.

    Read The Floating-Point Guide to understand why.

    0 讨论(0)
  • 2020-12-09 09:08

    you can use this code to reduce precision part:

    double m = Math.Round(0.55000000000000004,2);
    

    Result would be : 0.55

    0 讨论(0)
  • 2020-12-09 09:11

    Is a string or a double? If it is a string:

    double d = double.Parse(s,CultureInfo.InvariantCulture);
    string s=string.Format("{0:0.00}",d);
    

    if it is already a double just format using the second line.

    0 讨论(0)
提交回复
热议问题