iOS 字符串與浮點(diǎn)型轉(zhuǎn)換與精度問題

iOS 字符串與浮點(diǎn)型轉(zhuǎn)換與精度問題

一般字符串轉(zhuǎn)浮點(diǎn)型

NSString *str1 = @"123.12";

float? strfloat1= [str floatValue];

float strfloat2=0.5;

NSString *str2 = [NSString stringWithFormat:@"%f",strfloat2];

這里在%f ,這里可以是 @".2f"? 標(biāo)識(shí)小數(shù)點(diǎn)后保留2位? 以此類推

來看一下floatValue的定義:

Discussion

If the receiver is not a text-type cell or the cell value is not scannable, the method returns 0.

如果這個(gè)字符串不是text類型 或者 不可掃描,就返回0? 比如

?@"hello world" 或者中文 返回0?

這個(gè)能可以幫助你在接收端做很多處理,比如 :

?@"000.123" 轉(zhuǎn)成 0.123

?@".123?" 轉(zhuǎn)成? 0.123


一般來說這個(gè)轉(zhuǎn)換類型在iOS開發(fā)中有兩種情況

第一種是服務(wù)端傳遞解析,用于顯示或者運(yùn)算。

第二種就是輸入框接收浮點(diǎn)型做運(yùn)算或者存儲(chǔ)。

先說第一種,如果服務(wù)端一般字符串傳遞,在移動(dòng)端轉(zhuǎn)成浮點(diǎn)型

比如

?NSString*float8str =@"0.94";

?float? float8 = [float8str floatValue];

?double double8 = [float8str doubleValue];

float8 = 0.939999997

double8 = 0.93999999999999994

NSString *str8= [NSString stringWithFormat:@"%f",float8];

str8 = @"0.94"

我們按照精度截取就好 小數(shù)點(diǎn)后兩位。

第二種,這種應(yīng)用于textfield等輸入框,設(shè)置數(shù)字鍵盤,只能輸入數(shù)字和小數(shù)點(diǎn)。

建議轉(zhuǎn)浮點(diǎn)型處理格式,也可以按照小數(shù)點(diǎn)按為處理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容