gpt4 book ai didi

.net - 确定性浮点和 .NET

转载 作者:行者123 更新时间:2023-12-04 02:25:32 24 4
gpt4 key购买 nike

我如何保证 .NET 应用程序中的浮点计算(比如在 C# 中)总是产生相同的位精确结果?特别是在使用不同版本的 .NET 并在不同平台(x86 与 x86_64)上运行时。浮点运算的不准确性无关紧要。

在 Java 中,我会使用 strictfp。在 C/C++ 和其他低级语言中,这个问题基本上是通过访问 FPU/SSE 控制寄存器来解决的,但这在 .NET 中可能是不可能的。

即使控制了 FPU 控制寄存器,.NET 的 JIT 也会在不同平台上生成不同的代码。在这种情况下,像 HotSpot 这样的东西会更糟......

为什么我需要它?我正在考虑编写一个实时策略 (RTS) 游戏,该游戏在很大程度上依赖于快速浮点数学和锁步模拟。基本上我只会通过网络传输用户输入。这也适用于通过存储用户输入实现重播的其他游戏。

不是一个选项是:

  • 小数(太慢)
  • 定点值(使用 sqrt、sin、cos、tan、atan 时太慢和麻烦...)
  • 像 FPS 一样通过网络更新状态:发送数百或数千个单位的位置信息不是一种选择

  • 有任何想法吗?

    最佳答案

    我不确定您的问题的确切答案,但您可以使用 C++ 并在 C++ dll 中完成所有 float 工作,然后通过互操作将结果返回到 .Net。

    关于.net - 确定性浮点和 .NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2376679/

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