它基于 C#、.net
服务器是 64 位机器,客户端是 32 位机器,一个 double[] 数组被发送到客户端。在客户端中,使用此数据创建一个二进制文件。
由于服务器是 64 位而客户端是 32 位,所以是否有可能会损坏双重值。
它基于 C#、.net
服务器是 64 位机器,客户端是 32 位机器,一个 double[] 数组被发送到客户端。在客户端中,使用此数据创建一个二进制文件。
由于服务器是 64 位而客户端是 32 位,所以是否有可能会损坏双重值。
不,如果 .NET 同时发送和接收,则不会。
这还取决于您发送和接收的方式。TCP 是基于流的,这意味着使用单个发送的所有内容socket.Send()
可能不会通过单个socket.Receive()
.
以下文章提供了一个示例,其中精度受您所在的系统(32 位或 64 位)影响:
提供示例的摘录:
此外,由于 Double 类型的精度损失,使用 Double 值的算术和赋值操作的结果可能会因平台而略有不同。例如,分配文字 Double 值的结果在 .NET Framework 的 32 位和 64 位版本中可能不同。以下示例说明了将文字值 -4.42330604244772E-305 和值为 -4.42330604244772E-305 的变量分配给 Double 变量时的这种差异。请注意,在这种情况下 Parse(String) 方法的结果不会损失精度。
您可能希望将服务器上应用程序的目标平台设置为 x86。这是我的理解(如果我错了,请纠正我)这将迫使精度等同于 32 位机器,无论您实际运行的是什么。