gpt4 book ai didi

c# - 尝试为当前语言设置小数点分隔符,得到 "Instance is read Only"

转载 作者:太空狗 更新时间:2023-10-29 19:52:55 27 4
gpt4 key购买 nike

我的代码最初是为小数分隔符为“.”的英语市场编写的。所以它期望数值作为字符串使用“。”作为分隔符。但是我们现在在其他地方也有用户,例如,在欧洲,小数点分隔符是“,”。

因此,在我的软件上下文中(实际上只是当前线程),我想将当前语言的小数点分隔符覆盖为“.”。即使它默认为其他内容。

我试过了

  String sep = "."; 
NumberFormatInfo nfi1 = NumberFormatInfo.CurrentInfo;
nfi1.NumberDecimalSeparator = sep;

但我在第三行收到“Instance is read-only”异常。显然 NumberFormatInfo 是不可写的。那么如何将当前语言的小数点分隔符设置为默认值以外的值呢?

最佳答案

你需要创建一个新的文化,你可以使用当前的文化作为模板,只改变分隔符。然后您必须将当前文化设置为您新创建的文化,因为您不能直接更改当前文化中的属性。

string CultureName = Thread.CurrentThread.CurrentCulture.Name;
CultureInfo ci = new CultureInfo(CultureName);
if (ci.NumberFormat.NumberDecimalSeparator != ".")
{
// Forcing use of decimal separator for numerical values
ci.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture = ci;
}

关于c# - 尝试为当前语言设置小数点分隔符,得到 "Instance is read Only",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785689/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com