iOS中字符串转float类型失真的解决办法

    最近在做项目的过程中,偶然遇到了一个问题,就是字符串和浮点类型的转换。以往都是通过[NSString stringWithFormat:@"%d",goodcount]这种方式转换,并没有太在意。今天一个项目中的客户反馈在输入很长的数字后,浮点类型的数据显示和输入的不一致。经过反复的测试发现,原来浮点类型的float只能支持到8位,也就是说12345678这样的数字通过float类型是没有问题的,但是如果超过八位以后NSString *[email protected]"1234567890";  NSLog(@"数据类型%.2f,%.2f",[temstr floatValue],[temstr doubleValue]);   打印输出 数据类型1234567936.00,1234567890.00。原来float类型的最大容量是8位,而double类型的容量为16位,所以在项目开发过程中字符串和浮点类型的转换最好用double类型。但是double类型如果超出16位也会失真(NSString *[email protected]"123456789012345678";  NSLog(@"数据类型%.2f,%.2f",[temstr floatValue],[temstr doubleValue]); 打印输出数据类型123456790519087104.00,123456789012345680.00),不过已经够用了。

时间: 2024-09-30 00:50:44

iOS中字符串转float类型失真的解决办法的相关文章

IOS中input键盘事件keyup 的兼容解决办法

用input监听键盘keyup事件,在安卓手机浏览器中是可以的,但是在ios手机浏览器中很慢,用输入法输入之后,并未立刻相应keyup事件. 解决办法: 在ios设备上可以用html5的input事件去代替keyup. eg: var bind_name = 'input';if (navigator.userAgent.indexOf("MSIE") != -1) { bind_name = 'propertychange';}(此处是为了兼容IE)if(navigator.user

ios NSString字符串如何转为NSNumber(已解决)

今天同事问我 NSString字符串如何转为NSNumber,思考了一下解决了 思路:先将字符串转为NSInteger类型,再通过NSNumber的创建方法@(数字)即可实现 NSString * str = @"890909"; // 字符串转为NSInteger类型 NSInteger num = [str integerValue]; NSLog(@"%li",num); // 字符串转为NSNumber对象类型 NSNumber * nums = @(num

[转]iOS Safari 中click点击事件失效的解决办法

iOS Safari 中click点击事件失效的解决办法 问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. 解决办法 解决办法有 4 种可供选择: ?将 click 事件直接绑定到目标?元素(??即 .target)上 将目标?元素换成 

安装wps导致 application/kset 上传文件类型报错解决办法

电脑中安装wps上传execl时,上传.xls文件时 报错 application/kset 文件类型不正确 打印array() print_r($_FILES ) 结果如下: Array ( [userfile] => Array ( [name] => Template.xls[type] => application/kset[tmp_name] => C:\\Windows\\temp\\phpACC.tmp [error] => 0 [size] => 768

Xamarin中VS无法连接Mac系统的解决办法

Xamarin中VS无法连接Mac系统的解决办法 按照以下步骤排查:(1)确认Mac系统中安装Xamarin.iOS开发必备的组件,如Mono.Xamarin.iOS.(2)将Windows和Mac下的Xamarin都升级到最新版.(3)在Mac下开启远程登录功能.(4)在Windows下,使用Putty验证Mac的帐号和密码是否有效.

c++中两个头文件定义同名类的解决办法

今天考虑了一个问题,如果两个头文件比如time.h times.h里面都定义了一个time的类,要怎么解决?vs编译器只对cpp文件进行编译,在编译阶段,这两个头文件的实现文件都不会出错,如果不在主函数中用到time这个类,程序也不会有问题.但是如果用到,那就是disaster!!!,如果你不得不在两个头文件中定义同名类,下面是我自己思考出来的最简单的解决方式--->>用不同的作用域包含 #ifndef TIME_H #define TIME_H namespace time1 { class

http中 get方法 传送中文参数乱码解决办法

http传送参数有两种方法:get 和post  当时使用get方法传递中文参数是会有乱码现象 解决办法: 1.在jsp压面url后面的参数使用 encodeURI:"&zxbghy="+ encodeURI(zxbghy) 2.在后台java获取参数时使用字节数组:temphgdmhy = new String(hgdmhy.getBytes("ISO-8859-1"), "UTF-8");  案例,用get方法传递两个中文参数:zxb

CSS中右对齐float:right换行的解决办法

问题:同时使用float:left 和right的时候不在同一水平线上 第一种解决办法:把左右对换,比如把日期放在标题的前面,对调下位置就好了. 第二种解决办法:给右边也加上float:right 浮动不正常的(不在同一行,换行了,仅仅因为多了一个 ,从而导致整个排版混乱): 浮动正常的1:(第一种解决办法:去掉 ) 浮动正常的2:(第二种解决办法:从 起再套一层span,并设定float:right;) CSS中右对齐float:right换行的解决办法,布布扣,bubuko.com

java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1解决办法

java.sql.SQLException: 索引中丢失  IN 或 OUT 参数:: 1 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162) at oracle.jdbc.driver.OraclePreparedStatement.pr