首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在需要浮点数的函数中使用双精度

在需要浮点数的函数中使用双精度
EN

Stack Overflow用户
提问于 2019-03-15 03:48:44
回答 1查看 57关注 0票数 1

从文本文件中,我读取值X。

代码语言:javascript
复制
XCOORD = -75.015

我像这样得到它,并将它转换为double。

代码语言:javascript
复制
    var dic = File.ReadAllLines("test.txt")
      .Select(l => l.Split(new[] { '=' }))
      .ToDictionary(s => s[0].Trim(), s => s[1].Trim());

    string X = dic["XCOORD"];
    double GivenX = Convert.ToDouble(X);

然后我像这样使用我的函数:

代码语言:javascript
复制
WriteFloat(pointerx, (float)GivenX);

不幸的是,该函数不能正确地读取值。因为如果我简单地这样做,它确实可以工作:

代码语言:javascript
复制
WriteFloat(pointerx, -75.015f);

我认为它不能读取符号-和/或。有没有关于如何完成这项工作的想法?按照要求,我打印出了X的值:

代码语言:javascript
复制
mRef.showInfo(Convert.ToString(GivenX));

它向我显示:-75015,没有。我把它转换成双倍格式后打印出来的。如果我将它放在文本文件中,如下所示:XCOORD = -75.015f。它会使我的整个程序崩溃。

WriteFloat函数:

代码语言:javascript
复制
public void WriteFloat(long Address, float Value)
        {
            WriteProcessMemory(GetProcessHandle(), Address, BitConverter.GetBytes(Value), 4);
        }

目前,在我将其转换为double之前,我已经发现了这一点。它输出X很好:-75.015。将其转换为双精度后为:-75015。它错过了。在-75之后。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-15 04:19:04

这不是真正的答案,但它回答了很多评论。而且,它不适合在评论中使用

我创建了一个简单的文本文件,如下所示:

代码语言:javascript
复制
XCOORD = -75.015
POSITIVE = 25.123
WHOLE = 123

然后,我将您的代码进行了充实,以读取该文件中的所有键/值,并将结果写出来:

代码语言:javascript
复制
 public static void ConvertTheFloats()
 {
     var dic = File.ReadAllLines("ConvertFloatsData.txt")
         .Select(l => l.Split(new[] { '=' }))
         .ToDictionary(s => s[0].Trim(), s => s[1].Trim());

     var keys = dic.Keys;
     foreach (var key in keys)
     {
         string x = dic[key];
         if (float.TryParse(x, out var floatX))
         {
             Debug.WriteLine($"Success: Key: {key} - String Value: {x} - Float Value: {floatX}");
         }
         else
         {
             Debug.WriteLine($"Failed: Key: {key} - String Value: {x}");
         }
     }
 }

结果如下所示:

代码语言:javascript
复制
Success: Key: XCOORD - String Value: -75.015 - Float Value: -75.015
Success: Key: POSITIVE - String Value: 25.123 - Float Value: 25.123
Success: Key: WHOLE - String Value: 123 - Float Value: 123

所以,您对文件的解析是有效的。字典获取表示浮点数的键和字符串(我没有费心使用双精度)。我可以成功地将它们转换为浮点数。值匹配。

看起来你的问题出现在你还没有发布的代码中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55170903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档