gpt4 book ai didi

swift - 如何将 float 截断为 int 或无小数位

转载 作者:行者123 更新时间:2023-11-28 13:13:41 25 4
gpt4 key购买 nike

我有一个 float ,我们想截掉它的小数部分,但不确定最简单的方法。只是拿起 swift ,大部分的想法似乎都太复杂了。目前我有:

details.details.append((titles[2], "\(averageAnnualSolarProduction) kW"))

但这给了我一个我想要删除的分数。

最佳答案

我们需要结合两件事:

  1. Stringformat: initializer
  2. floor 操作,这将确保我们的十进制数不四舍五入。

如果我们想让这些操作保持在线,我们需要看起来像这样的东西:

details.details.append((titles[2], String(format: "%.0f kW", floor(averageAnnualSolarProduction))))

但是括号太多了。如果我们稍微取消嵌套,看起来会好一些。

let solarProduction = String(format: "%.0f kW", floor(averageAnnualSolarProduction))
details.details.append((titles[2], solarProduction))

为清楚起见,floor 接受一个像 3.89 这样的数字,并返回小于传入值的最大整数,因此它将返回 3.0在这里。

为了确保我们不打印 .0,我们使用 Stringformat: 初始化程序,它需要一个格式化字符串和参数。这就像格式字符串至少从 C 开始就起作用一样。 %f 指定我们的参数是一个 float ,而 .0 指定我们将在之后显示零数字小数点。

如果我们发现四舍五入,我们可以放弃对 floor 的调用并简单地使用 format: 初始化器,但对于 3.89 的值,这将为我们提供一个类似于 "4 kW" 的字符串。

关于swift - 如何将 float 截断为 int 或无小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30202514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com