。Ubuntu终端上的.NET Core参数十进制错误

问题描述 投票:0回答:1

我已经在.net核心中创建了一个应用程序,该应用程序接受2个十进制值作为参数。 (3.1核心)

示例:

./MyApp 5.100 53.30 

这在我的Windows系统上进行测试时效果很好。但是,当我将其发布到ubuntu服务器时,在十进制值中看不到点。

当我在Ubuntu中为它们提供值后打印它们时,它们将显示为:用5100 5330代替5.100 53.30

我不知道我做错了什么。如果有人知道答案,将不胜感激!

编辑:

我已尝试使用此方法将它们转换:

decimal Lat = 0;
decimal.TryParse(args[1], out Lat)

也尝试使用以下方法进行转换:

decimal Lat = 0;
Lat = Convert.ToDecimal(args[1])

结果都去除了点

点仅在解析后被删除。在解析之前将其打印正常。

c# ubuntu parameters arguments core
1个回答
0
投票

您的ubuntu系统最有一种文化设置,它的数字没有小数点。例如,用英语将其表示为5.10,但是在像德语这样的语言中则将其表示为5,10,因此对于接受TryParseIFormatProvider使用重载以使用CultureInfo.InvariantCulture来解析字符串。

也照做

decimal lat = 0;
decimal.TryParse(args[1], NumberStyles.Number, CultureInfo.InvariantCulture, out lat);
© www.soinside.com 2019 - 2024. All rights reserved.