场景:我有一个 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/