之前一直把版本號轉換為floatvalue,但是最近在專案中又出現了float的問題,主要是
nsstring表示為@"17.30",轉換為floatvalue 值為17.299999,然後做了一些放大處理,導致不精確,就是精度少了1
所以都不敢在系統版本比較的過程中把值強制轉換為floatvalue了。
/*
* system versioning preprocessor macros hovertree.com
*/#definesystem_version_equal_to(v)([[[uidevicecurrentdevice]systemversion]compare:v options:nsnumericsearch]==nsorderedsame) #definesystem_version_greater_than(v)([[[uidevicecurrentdevice]systemversion]compare:v options:nsnumericsearch]==nsordereddescending) #definesystem_version_greater_than_or_equal_to(v)([[[uidevicecurrentdevice]systemversion]compare:v options:nsnumericsearch]!=nsorderedascending) #definesystem_version_less_than(v)([[[uidevicecurrentdevice]systemversion]compare:v options:nsnumericsearch]==nsorderedascending) #definesystem_version_less_than_or_equal_to(v)([[[uidevicecurrentdevice]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 ...