2

它基于 C#、.net

服务器是 64 位机器,客户端是 32 位机器,一个 double[] 数组被发送到客户端。在客户端中,使用此数据创建一个二进制文件。

由于服务器是 64 位而客户端是 32 位,所以是否有可能会损坏双重值。

4

2 回答 2

1

不,如果 .NET 同时发送和接收,则不会。

这还取决于您发送和接收的方式。TCP 是基于流的,这意味着使用单个发送的所有内容socket.Send()可能不会通过单个socket.Receive().

于 2012-10-11T06:09:50.350 回答
0

以下文章提供了一个示例,其中精度受您所在的系统(32 位或 64 位)影响:

MSDN - 双重结构

提供示例的摘录:

此外,由于 Double 类型的精度损失,使用 Double 值的算术和赋值操作的结果可能会因平台而略有不同。例如,分配文字 Double 值的结果在 .NET Framework 的 32 位和 64 位版本中可能不同。以下示例说明了将文字值 -4.42330604244772E-305 和值为 -4.42330604244772E-305 的变量分配给 Double 变量时的这种差异。请注意,在这种情况下 Parse(String) 方法的结果不会损失精度。

您可能希望将服务器上应用程序的目标平台设置为 x86。这是我的理解(如果我错了,请纠正我)这将迫使精度等同于 32 位机器,无论您实际运行的是什么。

于 2012-10-11T06:43:31.847 回答