C# 根据当前区域设置设置字符串格式

C# 根据当前区域设置设置字符串格式,c#,C#,在我的C应用程序中,我使用字符串作为 string sTemp = "10.12;12.13;15.345"; 现在我想知道是否有任何方法可以格式化这个字符串及其内容,特别是当它们是根据当前语言环境的数字时。最终我希望我的sTemp应该是-10,12;12,13;15345法语地区 有可能吗?使用拆分字符串的双精度,使用或fr解析输入,使用或fr解析输出: string sTemp = "10.12;12.13;15.345"; var doubles = sTemp.Split(';')

在我的C应用程序中,我使用字符串作为

string sTemp = "10.12;12.13;15.345";
现在我想知道是否有任何方法可以格式化这个字符串及其内容,特别是当它们是根据当前语言环境的数字时。最终我希望我的sTemp应该是-10,12;12,13;15345法语地区

有可能吗?

使用拆分字符串的双精度,使用或fr解析输入,使用或fr解析输出:

string sTemp = "10.12;12.13;15.345";

var doubles = sTemp.Split(';')
    .Select(s => double.Parse(s, CultureInfo.InvariantCulture));

var locale = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");
// or var locale = System.Globalization.CultureInfo.CurrentCulture;

var localeDoubleStrings = doubles.Select(d => d.ToString(locale));
foreach(string frDoubleStr in localeDoubleStrings)
    Console.WriteLine(frDoubleStr);
用于拆分字符串双精度,使用或fr解析输入,使用或fr解析输出:

string sTemp = "10.12;12.13;15.345";

var doubles = sTemp.Split(';')
    .Select(s => double.Parse(s, CultureInfo.InvariantCulture));

var locale = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");
// or var locale = System.Globalization.CultureInfo.CurrentCulture;

var localeDoubleStrings = doubles.Select(d => d.ToString(locale));
foreach(string frDoubleStr in localeDoubleStrings)
    Console.WriteLine(frDoubleStr);

我猜您正在使用声明内容的字符串,在这种情况下,您需要对其进行格式化

范例

// this would be as per french culture
Console.WriteLine(string.Format(new CultureInfo("Fr-fr"), "{0};{1};{2};", 10.2, 15.6, 25.3));
// this would be invariant
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0};{1};{2};", 10.2, 15.6, 25.3));
所以你只需要说CultureInfo.CurrentCulture,这应该对你有用


但是,如果您将其与内容一起使用,那么您必须更新问题,说明如何构建字符串内容

我猜您将字符串与声明的内容一起使用,在这种情况下,您需要对其进行格式化

范例

// this would be as per french culture
Console.WriteLine(string.Format(new CultureInfo("Fr-fr"), "{0};{1};{2};", 10.2, 15.6, 25.3));
// this would be invariant
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0};{1};{2};", 10.2, 15.6, 25.3));
所以你只需要说CultureInfo.CurrentCulture,这应该对你有用


但是,如果您将其与内容一起使用,那么您必须更新问题,说明如何构建字符串内容

?请发布您当前的代码,并解释您被卡住的地方。您是在构建字符串内容还是分配文本?@Oded-目前我在这方面没有做太多尝试,我只是需要一个方法来实现这一点,以便我可以决定我未来的方法。从下一次开始,我肯定会继续使用我的方法来添加我已经尝试过的内容,很好的一课。谢谢你。?请发布您当前的代码,并解释您被卡住的地方。您是在构建字符串内容还是分配文本?@Oded-目前我在这方面没有做太多尝试,我只是需要一个方法来实现这一点,以便我可以决定我未来的方法。从下一次开始,我肯定会继续使用我的方法来添加我已经尝试过的内容,很好的一课,谢谢你。