之前一直把版本號轉換為floatvalue,但是最近在專案中又出現了float的問題,主要是
nsstring表示為@"17.30",轉換為floatvalue 值為17.299999,然後做了一些放大處理,導致不精確,就是精度少了1
所以都不敢在系統版本比較的過程中把值強制轉換為floatvalue了。
/*
* system versioning preprocessor macros
*/#define
system_version_equal_to(v
)([[[
uidevice
currentdevice
]systemversion
]compare
:v options
:nsnumericsearch]==
nsorderedsame
)#define
system_version_greater_than(v
)([[[
uidevice
currentdevice
]systemversion
]compare
:v options
:nsnumericsearch]==
nsordereddescending
)#define
system_version_greater_than_or_equal_to(v
)([[[
uidevice
currentdevice
]systemversion
]compare
:v options
:nsnumericsearch]!=
nsorderedascending
)#define
system_version_less_than(v
)([[[
uidevice
currentdevice
]systemversion
]compare
:v options
:nsnumericsearch]==
nsorderedascending
)#define
system_version_less_than_or_equal_to(v
)([[[
uidevice
currentdevice
]systemversion
]compare
:v options
:nsnumericsearch]!=
nsordereddescending)/*
* usage
*/if
(system_version_less_than
(@"4.0"
))if
(system_version_greater_than_or_equal_to
(@"3.1.1"
))
iOS版本比較方法
之前一直把版本號轉換為floatvalue,但是最近在專案中又出現了float的問題,主要是 nsstring表示為 17.30 轉換為floatvalue 值為17.299999,然後做了一些放大處理,導致不精確,就是精度少了1 所以都不敢在系統版本比較的過程中把值強制轉換為floatvalue了...
iOS版本比較的精確方法
於stackoverflow.之前一直把版本號轉換為floatvalue,但是最近在專案中又出現了float的問題,主要是 nsstring表示為 17.30 轉換為floatvalue 值為17.299999,然後做了一些放大處理,導致不精確,就是精度少了1 所以都不敢在系統版本比較的過程中把值強...
版本號比較方法
在開發中大家應該會遇到版本公升級的問題,那麼怎麼對比版本號呢?特別是有的時候版本號長度還不等 如 高版本號為6.8.0 而本地版本號為6.7.0.1 如果是一般的位數相等的版本號解決方法可以是 1.去掉版本號中的 然後轉成float等數字進行對比即可。2.迴圈挨個字元對比,遇到不等的即可break ...