为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
天涯尽头无女友 2021-11-07 18:44:11
我正在尝试转换以下格式的字符串: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 { } }                        };现在,当我将新值添加到 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" ]      }    ]  }]但是当它保存时,它会保存为 30500.00
查看完整描述

3 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

您试图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);


查看完整回答
反对 回复 2021-11-07
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

您可以创建自定义 NumberFormatInfo


var nf = new System.Globalization.NumberFormatInfo();

nf.NumberDecimalSeparator = ",";

nf.NumberGroupSeparator = " ";

并用它来解析数值


Console.WriteLine(float.Parse("30,5000", nf));


查看完整回答
反对 回复 2021-11-07
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

嗯,我有一个解决方案,但它不会是最好的,但它会起作用。当您处理字符串时,您可以使用此函数


string converter(string s)

{

s = s.Replace('.',',');

return s;

}

还检查此链接 https://msdn.microsoft.com/en-us/library/czx8s9ts(v=vs.110).aspx


查看完整回答
反对 回复 2021-11-07
  • 3 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信