每个地区的号码系统存在问题 - c#

我正在Unity中开发一个项目,在其中我使用.CSV文件收集要在项目中使用的数据。一个重要的事实是,我正在使用西班牙语(西班牙,国际)的操作系统(OS)区域来开发该项目。

我使用此.CSV文件列出了我希望角色在游戏中执行的动作,例如,从当前位置移动到A点或在X位置保持静止。在.CSV中,我将数据另存为字符串,但是当我在项目中引入数据时,我需要将其作为浮点数:

MOVE:浮点速度,浮点位置.x,浮点位置.y,浮点
位置
等待:浮动时间

这些操作中的任何一个都附加到接收该操作的对象上,并且该对象可以完美执行。

问题来了,当我向Steam发送了一个版本以验证项目时,他们通知我他们不能前进,因为角色不动(游戏正常​​,但什么也没动)。

经过多次测试,我发现了问题所在。事实证明,如果执行项目构建的OS位于与西班牙语(西班牙,国际)不同的区域(例如英语(英国)),则游戏可以运行,但在我最初编程的时间内没有任何变化。

之所以会出现此问题,是因为每个地区都有不同的十进制系统,例如,在西班牙,点用于表示单位,在逗号中则用于表示小数(“ 1.234,24”),而在英格兰则相反(“ 1,234.24” ),因此如果我声明我的角色将等待(WAIT)“ 0,2”秒(西班牙),则在英语(英国)区域的操作系统中,它将是“ 20”秒,因为它将逗号解释为单元分隔符。 MOVE操作也是如此。

为了不必更改操作系统的区域,我在.CSV中将逗号更改为点,以将问题移至我的区域并进行必要的测试。因此,我可以证明,如果我输入“ 3.00”(这将是3秒),则我的操作系统会将其解释为3分钟。

我的问题是:无论操作系统运行在哪个区域,我如何解决该问题,以便计时器能按我的意愿工作?

我试图通过将点更改为逗号来进行从字符串到浮点的手动解析,但是我意识到,即使我在自己的区域中修复了错误,该错误也会转移到另一个区域。

有没有一种方法可以配置项目,使其始终使用独立于OS的特定编号系统?我的意思是,将逗号理解为小数,并将其用于任何目的的区域。

我尝试了System.Globalization.CultureInfo,但是什么也没得到(或者我没有完全理解)。

有没有一种方法可以创建在任何区域都可以使用的手动解析器?

非常感谢你。

参考方案

通过查看System.Globalization,您可以从正确的路径开始。您只需要使用不变的文化-What does CultureInfo.InvariantCulture mean?-您可以指定在转换为字符串以及将字符串解析回所需的类型时使用它,例如:

using System.Globalization;
using System.IO;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var ci = CultureInfo.InvariantCulture;

            double x = 0.123;
            using(var sw=new StreamWriter("someFile"))
            {
                sw.Write(x.ToString(ci));
            }

            using (var sr=new StreamReader("someFile"))
            {
                string line = sr.ReadLine();
                x = double.Parse(line, ci);
            }
        }
    }
}

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

将.txt解析为.csv - java

是否可以创建一个Java程序来识别.txt文件中的文本并将其写入.csv文件中?如果是,您将如何解决这样的问题?我的.txt文件是Text1 | Text 2,因此我可以以某种方式获取char“ |”并将其分为两个单元格 参考方案 在Java 8中,这非常简单:public static void main(String[] args) throws Exc…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…