将浮点数改为双精度

4
如果我将我的字段从float更改为double,那么这会破坏我的格式的向后兼容性吗?理论上应该会破坏,但在我的测试中并没有发生这种情况。
另一方面,我想float和double具有不同的wire-type,这可以让protobuf-net正确处理并进行转换。
是否有任何文档涵盖此类内容?
1个回答

3

简短版:没问题。

在底层,这意味着- 固定的4字节与8字节编码之间的差异,所以如果你这样做,未来的序列化将需要每个值额外几个字节。

就protobuf-net而言,它默认情况下非常宽容-所以这不会破坏您现有的数据。 它尝试处理尽可能多的常见/可能的更改,并且可以很好地处理此类更改。 其他实现可能更严格,因此如果您将其用于交互操作目的,我无法对“其他端”(即某些其他protobuf实现)进行任何声明。 为了帮助解决这个问题,还有一个可选/选择性的严格模式(默认情况下禁用)。 如果您已启用,则只允许精确表示(因此:32位浮点数和64位双精度浮点数)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接