gpt4 book ai didi

c# - 区域性更改后如何在十进制 ToString 处保留 "."

转载 作者:太空宇宙 更新时间:2023-11-03 13:32:43 24 4
gpt4 key购买 nike

我有一个不同语言的网站。在模型中,我有以下成员声明:

[Required(ErrorMessageResourceType = typeof(ViewRes.GlobalResource), ErrorMessageResourceName = "awr1")]
[Range(typeof(decimal), "0.00100001", "10000", ErrorMessageResourceType = typeof(ViewRes.GlobalResource), ErrorMessageResourceName = "TotalMoneyMinMaxValidation")]
public decimal TotalMoney { get; set; }

当我将 UI 区域性更改为 ru-RU 时,出现以下错误:

0.00100001 is not a valid value for Decimal.

如何将我的文化信息和 UI 保持为 ru-RU 但所有小数点都是句点 (.) 而不是逗号 (,)?

这是我尝试过的:

CultureInfo ci = new CultureInfo("ru-RU");
ci.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentUICulture = ci;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);

不工作...

最佳答案

由于 RangeAttribute 是使用运行时区域性转换的,因此此问题没有精确的解决方法。您需要接受使用 double 的精度损失:

[Range(0.01, 10000)]

或者完全放弃使用 RangeAttribute

参见 this link .

关于c# - 区域性更改后如何在十进制 ToString 处保留 ".",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19935686/

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