将浮动更改为双倍

时间:2012-04-01 15:30:48

标签: c# serialization protobuf-net

如果我将我的一个字段从float更改为double,那是否会破坏我格式的向后兼容性?它应该是有意义的,但在我的测试中它没有。

另一方面,我认为float和double有不同的线型,这可以让protobuf-net正确处理这种情况并进行投射。

是否存在涵盖此类内容的文档?

1 个答案:

答案 0 :(得分:3)

TL;博士;版本:“那很好”

在线路级别,这是 - 固定的4字节编码与8字节编码之间的差异,因此,为此,未来的序列化将为每个值花费一些额外的字节。

对于protobuf-net,默认情况下非常宽容 - 因此不会打破现有数据。它试图尽可能多地处理常见/可能的更改,这样处理得很好。其他实现可能更严格,因此如果您将其用于互操作目的,我不能对“另一端”(意思是:其他一些protobuf实现)做出任何声明。为此,还有一个可选的/ opt-in strict模式(默认情况下禁用)。如果启用 ,那么允许精确表示(因此:浮点数为32位,双精度值为64位)。