【问题标题】:Rounding down to 3 decimal points not working correctly [duplicate]四舍五入到小数点后 3 位无法正常工作 [重复]
【发布时间】:2014-04-23 17:25:29
【问题描述】:

由于某种原因,当我尝试这样做时,最后会得到额外的数字:

float lat = floor(1000.0 * origin.latitude) / 1000.0;

结果:lat: 37.330002

即使将数字转换为 int,然后再转换为 float,也不会在最后删除数字。

【问题讨论】:

  • 不会将 1000 乘除到小数点后 3 位,而不是 2? 37.333002 * 1000 = 37333.002。将其下限得到 37333。除以 1000 得到 37.333。
  • 这个 SO 问题可能会对您有所帮助:stackoverflow.com/questions/1343890/…

标签: ios objective-c int


【解决方案1】:

试试这个:

float lat = floorf(1000.0 * origin.latitude) / 1000.0;

在 floor() 中仅适用于 C++、C 或 Objective C 使用 floorf() 并且乘以和除以 1000 将得到任意数字的小数点后三位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多