C#以特定格式浮动的字符串

Rob*_*bin 1 c# json

我正在尝试转换以下格式的字符串:30,500转换为浮点数30.500(在json中)所以目前我有类似的东西float.Parse(string.Format("{0:00,000}", inp_km.Text), CultureInfo.InvariantCulture.NumberFormat),但是当我将它保存在json中时,它会保存为30500.00.

我在这做错了什么?

我是怎么做到的;

我在这个班上做了一个对象Results;

team_results = new Results()
                        {
                            team_number = selected_team.team_number,
                            results = new Result[2] { new Result{ }, new Result { } }
                        };
Run Code Online (Sandbox Code Playgroud)

现在,当我将新值添加到json(下面的示例)时,我得到的输入是 30,500

[

  {
    "team_number": 101,
    "results": [
      {
        "given_start_time": "20:25",
        "connection_to_start":  "0:00",
        "start_kp": "20:26",
        "stop_kp": "0:0",
        "missed_controls": 0,
        "km": 0.000,
        "gtks": [ "25:00", "30:15", "0:00" ]
      },

      {
        "given_start_time": "21:56",
        "connection_to_start": "0:00",
        "start_kp": "21:57",
        "stop_kp": "0:0",
        "missed_controls": 0,
        "km": 0.000,
        "gtks": [ "25:00", "30:15" ]
      }
    ]
  }

]
Run Code Online (Sandbox Code Playgroud)

但是当它保存时,它会将其保存为 30500.00

Igo*_*gor 5

您正在尝试对Format字符串执行,该字符串将产生与结果相同的字符串.

您希望解析字符串并将IFormatProvider实现传递给Parse"理解" 正在解析的数字的字符串表示中的含义,.含义的方法.

在下面的示例中,我使用的文化nl-NL与您在问题中的预期具有相同的含义(.用于分隔数千个和,分隔数字的小数部分).

const string inputText = "30,500";
var result = float.Parse(inputText, NumberStyles.AllowDecimalPoint, System.Globalization.CultureInfo.GetCultureInfo("nl-NL"));
Console.WriteLine("Parsed {0} to value {1}", inputText, result);
Run Code Online (Sandbox Code Playgroud)