所以"跛脚" - 如何从浮动= 0.39824702只浮动= 0.398?

vog*_*gue 0 iphone objective-c-2.0 ios

..所以只有3位数字"."..

float a = 0.9876543
Run Code Online (Sandbox Code Playgroud)

我想在内存中只有0.987,因为通过蓝牙传输号码.

我正在使用iphone SDK ..

谢谢... :)

occ*_*lus 6

无论您存储的是"简单"数字(如1.0)还是"复杂"数字(如1.23456789),单精度浮点数都会占用相同数量的存储空间.(同样对于双精度浮子 - 它们的尺寸彼此相同,但显然它们比单精度浮子占用更多的存储空间.)

任何网络协议/传输这样的蓝牙都会产生开销,只是让事情变得有效,比如标题等.这些开销意味着你想要保存的存储量可能只是不值得打扰 - 你说的是从通信中删除几个字节,这可能比你潜在的保存大很多倍.

更现实的优化可能是收集一些读数,然后一次传输所有读数,例如一次传输32个.这使得"真实信息"与"协议开销"的比率更高.

以下是关于优化的一些建议,您应该注意:

http://c2.com/cgi/wiki?PrematureOptimization

不要太早优化!