gpt4 book ai didi

c# - 如何使用适当的 cultureinfo 将字符串转换为 double

转载 作者:IT王子 更新时间:2023-10-29 04:03:23 25 4
gpt4 key购买 nike

我在数据库中有两个 nvarchar 字段来存储 DataType 和 DefaultValue,我有一个 DataType Double 和英文格式的值为 65.89875。

现在我希望用户根据所选的浏览器语言格式查看值(英语中的 65.89875 应显示为德语中的 65,89875)。现在,如果用户从德语格式编辑为 65,89875,相当于英语中的 65.89875,而其他用户从英语浏览器中查看,则为 6589875。

发生这种情况是因为在数据库中它在 nvarchar 列中存储为 65,89875 并且当使用英语文化转换时它变为 6589875 因为它将 , 视为分隔符,它是德语的小数运算符.

我如何让它适用于所有浏览器?

最佳答案

您需要定义将用于存储在数据库中的数据的单一语言环境,不变文化正是用于此目的。

当您显示转换为 native 类型,然后针对用户的文化设置格式时。

例如显示:

string fromDb = "123.56";
string display = double.Parse(fromDb, CultureInfo.InvariantCulture).ToString(userCulture);

存储:

string fromUser = "132,56";
double value;
// Probably want to use a more specific NumberStyles selection here.
if (!double.TryParse(fromUser, NumberStyles.Any, userCulture, out value)) {
// Error...
}
string forDB = value.ToString(CultureInfo.InvariantCulture);

附言。几乎不用说,使用数据类型与数据匹配的列会更好(但有时遗留问题适用)。

关于c# - 如何使用适当的 cultureinfo 将字符串转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2583362/

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