[Swift]String Relative

前端之家收集整理的这篇文章主要介绍了[Swift]String Relative前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. String To numeric value

  1. //在OC中,如果对一个16.8的字符串转为integerValue时
  2. 会从前向后寻找,找到第一位小数点时
  3. 将小数点后面的内容连并该小数点一起舍掉
  4. 然后转换为NSInteger对象.
  5. NSString *str = @"16.8";
  6. NSInteger i = str.integerValue;
  7. NSLog(@"%zd",i); //输出16
  8. /*在Swift中,就没有这么简单了. 首先你根本无法像OC一样,使用`.integerValue`如此简单的转换方法. 欲知详情,还请各位看官接着看我的代码*/
  9. var numberStr = "17.8"
  10. let numeric = Int(numberStr)
  11. print(numeric)
  12. /* 输出"nil" 你看吧,对一个含有小数点的字符串进行强转,不由分说,直接失败处理,就是这么不讲道理. 不过这里我已经在无意之间表示出了怎样用Swift进行字符串和数值的转换.同理: */
  13. let dValue = Double(numberStr);
  14. print(dValue)
  15. /* 输出"Optional(17.800000000000001)\n" 我数了数一共17位,最后一位是1,可见double类型还是有误差的,而且还是可选值呢. 那么试想: 如果拿dValue去和17.8比较,就因为那么一点点小小的误差就会导致结果不对呢? 但是,如果你真的拿dValue在if里面进行判断的时候,肯定会报错 因为可选值不能直接进行判断,要么用iflet,guardlet或者!进行解包. 一旦解包,那么就会把多余的0给舍去 即17.800000000000001为17.8.*/
  16. //大致就是这样了.

猜你在找的Swift相关文章