【问题标题】:Working with digits in numbers in Swift 3在 Swift 3 中处理数字中的数字
【发布时间】:2016-11-13 19:28:26
【问题描述】:

假设你有一个号码...

var number = 643

你想对它做一些数学运算。

例如,您想取最后两位数 (43),看看一个整数是否在最后两位数减去最后一位数后没有余数。

例如:

var remainder = 40 % 5  //'5' is the random integer, and 40 is the last two digits(43) minus the last digit(3)

这在 vbscript 中相当微不足道,但不知何故,作为 Swift 3 的新手,我无法在操场上完成这项工作。

如果我这样做

var number = 643
var str = (String)number
let lastChar = str.characters.last
var digit = 0
digit = Int(lastChar)

最后一行发出警告 无法使用类型为“(String.CharacterView._Element?)”的参数列表调用类型“Int”的初始化程序

有人可以帮我吗? 我无法在 30 多分钟内使用 google 找到答案,通常我会在更短的时间内很好...

谢谢你

【问题讨论】:

  • lastChar 正在尝试对 var str 做一些事情。但是 var str 是一个字符串,而不是一个 int。
  • (String)number 无法编译。为什么不643 % 100 得到43
  • @vadian 为什么不呢!多么优雅的解决方案。现在我需要知道如何获得数字中的位数,我应该很好。
  • @SuperWoman 你问的问题到底是什么?你提到了很多看似无关的事情。你的输入是什么,你想要的输出是什么?
  • @SuperWoman - “现在我需要知道如何获得数字中的位数” - 您可以使用以 10 为底的日志来解决这个问题。 (如果您不知道该怎么做,请提出另一个问题,说明您尝试了什么,毫无疑问有人会帮助您。)

标签: swift3 typecasting-operator


【解决方案1】:

我认为这更容易通过整数操作来实现:

let number = 643

let last2Digits = number % 100 // 43
let lastDigit = number % 10 // 3

let result = last2Digits - lastDigit //40

【讨论】:

    猜你喜欢
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多