ios - 如何将百分比值精确舍入到小数点后两位双倍?

标签 ios swift uikit

场景:我有一个 UISlider,允许值从 0 到 100。此 slider 将返回一个 float,例如 76.2345654234。在核心数据中,我想将此百分比存储为以下格式的 double 值:0.76。

问题:在 float 上使用 floor()round() 得到 76。很好。但是,如果我除以 100,现在会出现讨厌的尾随小数。有时某些数字会工作并给我 2 位小数,但每次都没有错误,另一个数字不会,我最终会得到如下所示的内容:0.760000001。

没有 solution 我在这个网站上看到过,否则 100% 的时间都有效。肯定有办法做这么简单的事情吗?谢谢!!

最佳答案

你说你想存储一个数字:

as a double

in this format: 0.76

你不能两者都做,你必须选择一个。 Double 不是小数,它不能准确存储大多数小数。看到这个问题:

Why can't decimal numbers be represented exactly in binary?

如果您需要精确地存储小数,请使用与 Double 不同的类型:例如,Decimal 类型)。如果出于某种原因您必须将数字存储为 Double,那么您将不得不忍受不准确存储十进制数。

旁注:当您打印不精确的 Double 值时,有一些方法可以将它们四舍五入到附近的小数位,但这是一个不同的主题,而不是您提出的问题。

关于ios - 如何将百分比值精确舍入到小数点后两位双倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59163485/

相关文章:

ios - 在 UIScrollView 中实现 UIWebView

ios - 如何在Objective C中使用XML解析发布具有特殊字符和泰语的字符串?

swift - 使用无法解析的标识符错误代码

swift - 映射函数重铸数组

iphone - UITableViewCell : How to prevent blue selection background w/o borking isSelected property?

iphone - 如何正确设置 UIAccessibilityElement 的 accessibilityFrame?

ios - 如何从 FQL 查询访问信息

ios - InApp 计划更改总是出现 "Cannot connect to iTunes store"错误

ios - 如何处理 iOS 中的不同方向

ios - 我如何获取用户的当前位置,执行本地地理查询,然后将结果应用到 PFQueryTableViewController?