Trying to set the decimal separator for the current language, getting quot;Instance is read Onlyquot;(尝试为当前语言设置小数点分隔符,得到“Instance is read Only;)
问题描述
我的代码最初是为英语市场编写的,其中小数点分隔符是."所以它期望数值作为字符串使用."作为分隔符.但是我们现在在其他地方也有用户,例如欧洲的小数点分隔符是,"的地方.
I have code that was originally written for an English language market where the decimal separator is "." so it's expecting numeric values as strings to use "." as the separator. But we now have users in other places, e.g., places in Europe where the decimal separator is ",".
因此,在我的软件(实际上只是当前线程)的上下文中,我想将当前语言的小数分隔符覆盖为."即使它默认为其他内容.
So, in the context of my software (really just the current thread) I want to override the decimal separator for the current language to be "." even if it defaults to something else.
我试过了
String sep = ".";
NumberFormatInfo nfi1 = NumberFormatInfo.CurrentInfo;
nfi1.NumberDecimalSeparator = sep;
但我在第三行收到Instance is read-only"异常.显然 NumberFormatInfo 是不可写的.那么如何将当前语言的小数点分隔符设置为默认值以外的值呢?
But I get an "Instance is read-only" exception on the third line. Apparently NumberFormatInfo is not writable. So how DO you set the current language's decimal separator to something other than its default?
推荐答案
您需要创建一个新的文化,您可以使用当前文化作为模板,只需更改分隔符.然后,您必须将当前文化设置为新创建的文化,因为您无法直接更改当前文化中的属性.
You need to create a new culture and you can use the current culture as a template and only change the separator. Then you must set the current culture to your newly created one as you cannot change the property within current culture directly.
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;
}
这篇关于尝试为当前语言设置小数点分隔符,得到“Instance is read Only";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:尝试为当前语言设置小数点分隔符,得到“Instance is read Only";
基础教程推荐
- MS Visual Studio .NET 的替代品 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- rabbitmq 的 REST API 2022-01-01