我一直在使用CocoaTouch编写的iOS应用程序中使用Protocol Buffers,并遇到了一个关于小数的新手错误。Protocol Buffers没有本地小数类型-请参见http://code.google.com/apis/protocolbuffers/docs/proto.html#scalar以获取所有类型。相反,我做出了(现在显然是错误的)假设,即浮点数可以代替小数。但由于存在舍入问题,它并不能。
Cocoa有一组在NSDecimal.h中的C函数看起来很有吸引力。但是,由于我正在与使用.NET编写的服务器通信,因此我需要一种方法将其转换为两个系统都可以理解的格式。
我假设我会使用原始的“字节”类型在两个系统之间传输数据,并在每个环境中将其转换为本机小数类型:Cocoa端上的NSDecimal,在.NET端上的Decimal。就在这里,我不清楚如何继续。
我应该使用什么中间格式-二进制编码的十进制似乎是一种可能性,但我必须自己实现算法来在两个系统上进行转换。
有一种字节编码的十进制格式,.NET和Cocoa都可以使用,我能用它吗?
非常感谢。
Cocoa有一组在NSDecimal.h中的C函数看起来很有吸引力。但是,由于我正在与使用.NET编写的服务器通信,因此我需要一种方法将其转换为两个系统都可以理解的格式。
我假设我会使用原始的“字节”类型在两个系统之间传输数据,并在每个环境中将其转换为本机小数类型:Cocoa端上的NSDecimal,在.NET端上的Decimal。就在这里,我不清楚如何继续。
我应该使用什么中间格式-二进制编码的十进制似乎是一种可能性,但我必须自己实现算法来在两个系统上进行转换。
有一种字节编码的十进制格式,.NET和Cocoa都可以使用,我能用它吗?
非常感谢。