gpt4 book ai didi

swift - 如何获取 NSPoint 中的整数值以整数而不是小数显示

转载 作者:行者123 更新时间:2023-11-30 10:42:57 32 4
gpt4 key购买 nike

如何让 NSPoint 中的整数值显示为整数而不是小数?

let temp:NSPoint = NSMakePoint(5,7)

print(temp.x) . // displays 5.0

我只想显示 5,而不是 5.0

最佳答案

你问:

How do you get integer values in an NSPoint to display as integer rather than as decimal.

这个问题可能基于一个错误的前提。您提供给 NSMakePoint(_:_:) 的参数实际上是 CGFloat(底层属性 xy 也是如此)。因此,尽管您提供了整数,但无论如何,Swift 将它们存储为 xyCGFloat

所以,问题是“如何在没有任何小数位的情况下显示 NSPointCGFloat 属性?”

当然,正如其他人所建议的,您可以使用 Int(point.x) 等从 CGFloat 属性创建一个整数,但我可能建议您确实可能只想显示这些没有小数位的 CGFloat。有很多方法可以做到这一点。

考虑:

let point = NSPoint(x: 5000, y: 7000)

您也可以使用 NSMakePoint,但这在 Swift 中更为自然。

然后要显示不带小数位的结果,您有几个选项:

  1. 在 macOS 中,NSStringFromPoint将生成完整的CGPoint,不带小数位:

    print(NSStringFromPoint(point))             // "{5000, 7000}"
  2. 您可以使用String(format:_:) ,使用明确指定无小数位的格式字符串:

    print(String(format: "%.0f", point.x))      // "5000"
  3. 您可以使用NumberFormatter并指定minimumFractionDigits:

    let formatter = NumberFormatter()
    formatter.minimumFractionDigits = 0
    formatter.numberStyle = .decimal
    print(formatter.string(for: point.x)!) // "5,000"

    不用说,如果您不想让代码变得过于冗长,您可以保存该格式化程序,并且可以根据需要重复使用它。

  4. 如果您只是将其记录到控制台,则可以使用 Unified Logging使用 import os.log 然后执行:

    os_log("%.0f", point.x)                      // "5000"

关于swift - 如何获取 NSPoint 中的整数值以整数而不是小数显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56408774/

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