我一直在使用Protocol Buffers與使用CocoaTouch編寫的iOS應用程序一起工作,並且遇到了可能等於十進制數字的新手錯誤。可可小數和協議緩衝區,與.NET的兼容性
協議緩衝區沒有原生十進制類型 - 請參閱http://code.google.com/apis/protocolbuffers/docs/proto.html#scalar所有類型。相反,我做了(現在明顯不正確)的假設,即浮點數可以代替小數。它沒有,因爲有舍入問題。
Cocoa在NSDecimal.h中有一組C函數,它們看起來很有吸引力。然而,由於我正在與一個使用.NET編寫代碼的服務器進行通信,因此我需要一種轉換爲兩種系統都可以理解的格式的轉換方法。
我假設我會使用原始的「字節」類型在兩個系統之間傳輸數據,並在每個環境中將其轉換爲原生十進制類型:Cocoa端的NSDecimal,.NET端的Decimal。在這裏,我不清楚如何繼續。
我應該使用什麼中間格式 - 二進制編碼的小數似乎是一種可能性,但我必須自己實現一個算法才能在兩個系統上進行轉換。
是否有一個字節編碼的十進制格式,.NET和Cocoa都說我可以使用?
非常感謝。
+1有趣的問題 – 2011-02-24 11:35:27