gpt4 book ai didi

c# - 如何在 C# 中使用全局化将英语十进制转换为西类牙语十进制

转载 作者:行者123 更新时间:2023-11-30 16:31:25 31 4
gpt4 key购买 nike

我使用的是 visual studio 2008。我的桌面应用程序在不同的区域设置中运行。

在我的代码中,我在字符串变量中有英文格式的十进制数字,我想使用 Convert.ToDecimal() 将它们转换为十进制变量,区域设置为“西类牙语(厄瓜多尔)”。

当我执行以下操作时:

string myNum = "0.04";  
decimal myDec = Convert.ToDecimal(myNum); // here im getting 4 instead of 0,04

当我使用时,

Convert.ToDecimal(myNum, new CultureInfo("en-US")); // i got 0.04, but i want 0,04

我无法为每个语句添加新的 CultureInfo("en-Us"),因为我使用转换语句超过 100 次。

我如何实现这一目标。请帮忙??

最佳答案

与其每次都创建一种新文化,不如使用 CultureInfo.InvariantCulture - 我个人会使用 decimal.Parsedecimal。 TryParse 而不是 Convert.ToDecimal。虽然只是我个人的喜好。 IIRC 它们只是在处理空输入方面真正不同。

但是,如果您只是反对每次都在您的代码中包含它,最简单的解决方案是编写您自己的辅助方法并调用那个。例如:

public static decimal ParseDecimalInvariant(string text)
{
return decimal.Parse(text, CultureInfo.InvariantCulture);
}

顺便说一句,我希望您真的在您的代码中没有字符串值。如果您有表示数字的字符串,只需将它们更改为文字即可!

decimal myNum = 0.04m;

这比在执行时解析要好得多:)

关于c# - 如何在 C# 中使用全局化将英语十进制转换为西类牙语十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918925/

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