美文网首页
iOS关于浮点数精度处理问题

iOS关于浮点数精度处理问题

作者: kwalter | 来源:发表于2018-08-31 15:30 被阅读15次

场景: 在一个提款场景中,当用户点击提取所有的资金后,由于从后台传过来的值是例如:100.59999999,而我们的精度是获取小数点后两位,当直接使用[NSString stringWithFormat:@"%.2lf",money]时,截取到的字符是100.60,当用户点击确定提取时,我们拿到100.60 与 100.599999 进行验证则会导致输入提取金额一直比剩余金额大,在这种情况下我们需要使用floor(money*100)/100 去处理显示问题,这样会保证所显示和输入的金额一直比实际的金额小,从而避免这种情况。

iOS关于数值处理函数:

1. ceil(x)返回不小于x的最小整数值(然后转换为double型)。

2. floor(x)返回不大于x的最大整数值。

3. round(x)返回x的四舍五入整数值。

相关文章

  • iOS关于浮点数精度处理问题

    场景: 在一个提款场景中,当用户点击提取所有的资金后,由于从后台传过来的值是例如:100.59999999,而我们...

  • iOS数据模型化时浮点数精度丢失

    iOS数据模型化时当json中有浮点数时,会出现浮点数精度丢失的问题如:@"{"number":"22.5"}"转...

  • iOS浮点数精度问题

    前言 浮点数是无法精确表示大部分实数的 单精度浮点数和双精度浮点数 单精度(float),一般在计算机中存储占用4...

  • 浮点数

    双精度浮点数类型 double单精度浮点数类型 float 以上两种都使用 浮点数 来表示小数 : 与之相对的是 ...

  • iOS 浮点数精度问题

    浮点的加减乘除运算,最好转成NSDecimalNumber 来进行; 通过decimalNumberByRound...

  • iOS 浮点数精度丢失

    后台返回的浮点类型的数据为 9.37,但是在使用浮点显示的时候就会变成 9.369999999999999 这种样...

  • mysql8 数据类型 float double decimal

    float数值类型用于表示单精度浮点数值,而double数值类型用于表示双精度浮点数值,float和double都...

  • JavaScript浮点数的精度问题深究

    JavaScript浮点数的精度问题 javascript浮点数的精度问题是老生常谈了,但往往只知道0.1 + 0...

  • py_28 Decimal处理小数计算精度问题

    python Decimal这个类处理浮点数精度 浮点数在内存中存储的时候因为存储机制的原因,天然存在精度丢失的现...

  • Java浮点数常见面试题解析

    float与double在java中很多人都知道有精度问题,对于浮点数不能直接进行比较,下面几个高频的关于浮点数的...

网友评论

      本文标题:iOS关于浮点数精度处理问题

      本文链接:https://www.haomeiwen.com/subject/pwnswftx.html