iOS填坑指南

iOS 字符串与浮点型转换与精度问题

2020-06-02  本文已影响0人  闪现接Q

iOS 字符串与浮点型转换与精度问题

一般字符串转浮点型

NSString *str1 = @"123.12";

float  strfloat1= [str floatValue];

float strfloat2=0.5;

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

这里在%f ,这里可以是 @".2f"  标识小数点后保留2位  以此类推

来看一下floatValue的定义:

Discussion

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

如果这个字符串不是text类型 或者 不可扫描,就返回0  比如

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

这个能可以帮助你在接收端做很多处理,比如 :

 @"000.123" 转成 0.123

 @".123 " 转成  0.123

一般来说这个转换类型在iOS开发中有两种情况

第一种是服务端传递解析,用于显示或者运算。

第二种就是输入框接收浮点型做运算或者存储。

先说第一种,如果服务端一般字符串传递,在移动端转成浮点型

比如

 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"

我们按照精度截取就好 小数点后两位。

第二种,这种应用于textfield等输入框,设置数字键盘,只能输入数字和小数点。

建议转浮点型处理格式,也可以按照小数点按为处理。

上一篇 下一篇

猜你喜欢

热点阅读