c# - C# .Net Core - 无论文化如何设置全局小数分隔符
问题描述
所以我有一台开发机器,它是荷兰机器和英文服务器。现在,我在数据库中有像 1.99(字符串)这样的值,我需要将其转换为小数。当我这样做时,decimal.Parse("1.99")
我得到 199.00。这是(可能)因为我的机器使用荷兰语设置并且小数点的分隔符是,
(逗号)。.
现在,无论请求的文化或机器本地设置如何,我如何才能将其全局设置为始终使用(点)作为分隔符?
我正在使用 .Net Core Web Api
解决方案
您可以将CultureInfo.InvariantCulture
其.
用作小数分隔符
var number = decimal.Parse("1.99", CultureInfo.InvariantCulture);
如果您不想在每个解析调用中设置文化,您可以创建一个扩展方法
public static class StringExtensions
{
public static decimal ToDecimalInvariant(this string value)
{
return decimal.Parse(value, CultureInfo.InvariantCulture);
}
}
然后像这样使用它
var number = myString.ToDecimalInvariant();
推荐阅读
- php - laravel 将 URL 添加到内爆数据
- javascript - System.Data.Entity.DynamicProxies
- c# - 使用路径绘制时如何生成从右到左的文本
- javascript - 使用 Firebase/Authentication 控制对网页的访问
- java - 如何将依赖项注入 RabbitListener
- python - 如何使用 tkinter filedialog.askopenfilename 方法避免文件选择器中的隐藏文件?
- javascript - 如何使用 puppeteer 获取 javascript 函数执行时间?
- python - ImportError:没有名为 dash 的模块
- c# - XML序列化多个具有相同名称但没有命名空间的元素
- php - PHP:使用 PDO 对象和多个准备语句会影响返回的 Statement 对象