c# - 全局化的自定义数字格式 - 可变小数点

标签 c# .net vb.net globalization string.format

我正在尝试更改我公司应用程序中现有的数字格式,以使其对国际用户更具可读性。这是一个股票交易应用程序,因此大多数股票价格都以精确到小数点后 2 位的数字出现,例如 -> 17.23 我们也可以得到精确到小数点后 4 位的报价,因此一分钱的股票可能是 0.0341。我们用于股票的原始字符串格式是“#,##0.00##”,这将为我们提供我们想要的格式(实质上是修剪“0”)。这里的问题是“,”和“。”被强加给用户,在许多其他国家/地区,千位分隔符是“.”小数点为','。 Boss man 不想对所有数字都使用“N4”,即使这可以解决全局化问题。是否可以有一个全局化的自定义字符串格式?

除了编写一些中间人代码来国际化以原始方式或其他 string.format 方法格式化的数字之外,还有其他选择吗?

最佳答案

检查一下:

float value = 0.0341f;
string output = string.Empty;
CultureInfo brazil = new CultureInfo("pt-BR");
CultureInfo usa = new CultureInfo("en-US");
output = value.ToString("C4", brazil.NumberFormat); //output is R$ 0,0341
output = value.ToString("C4", usa.NumberFormat); //output is $0.0341

关于c# - 全局化的自定义数字格式 - 可变小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5902450/

相关文章:

c# - .Net RIA 服务 : DomainService Needs a Parameterless Constructor?

c# - ASP.NET MVC3 自定义成员资格提供程序 - 指定的成员资格提供程序名称无效

c# - 在windows phone项目中使用可移植类库

c# - 获取程序集的公司名称和版权信息

c# - 如何检测我的 .NET 程序集是从网站运行还是从桌面计算机运行?

c# - C#中的单例类设计,这两个类是等价的吗?

c# - 如何在 XNA 中调整和保存 Texture2D?

c# - P/Invoke Interop Assistant - 是否像导入 dll 的 header 一样简单?

vb.net - 如何创建 'OF' 变量类型?

.net - 如何向用户发送电子邮件确认链接