【问题标题】:how can you append a number to a double in swift如何快速将数字附加到双精度
【发布时间】:2019-09-18 11:17:29
【问题描述】:

我正在尝试快速制作一个计算器应用程序,作为我 IOS 开发课程的练习。对于该应用程序,我试图在用户按下特定按钮后将数字附加到现有的双精度或整数,但我不知道如何。

如果用户按下让我们说一个 5,那么我希望代码应该将该 5 附加到他之前按下的数字

例如:

用户输入了以下号码:

6797.890

现在他想将 5 添加到现有数字上,这样数字将是:

6797.8905

我真的不知道如何在代码中做到这一点,如果有人可以通过展示如何解决这个问题或提供一些资源网站来帮助我,我真的很感激

非常感谢!

本吉

【问题讨论】:

  • 如果这不需要高性能,您可以将双精度转换为字符串,将 5 添加到末尾,然后将其解析为双精度。我知道的唯一另一种方法是使用数学,但这需要弄清楚这个数字已经有多少小数位。
  • 用户的输入应该被视为String(毕竟,您很可能使用UITextField 进行输入)。在用户输入一个新数字后,您读取了文本字段的text 属性,您现在将6797.8905 作为String。只有这样你才能转换为双精度(或任何你正在使用的)来在内部存储数字。
  • @paulvs 我正在使用按钮,每个数字都有她自己的按钮
  • 我明白了,我的建议是,当用户按下数字按钮时,您可以将该数字附加到包含用户迄今为止输入的内容的字符串中。然后将其转换为双精度。
  • @paulvs 我也想过这个,但我也不知道怎么做,所以我认为将一个数字附加到另一个数字比转换字符串并将数字附加到字符串更容易。

标签: swift numbers integer append double


【解决方案1】:

您必须将输入作为字符串处理。如果您将其处理为双精度,则尾随零将丢失,您的代码将无法区分将“5”添加到 6797.890 和将“5”添加到 6797.89

在显示初始值后,仅在一个方向(从输入到数据)从String转换为Double。

【讨论】:

    【解决方案2】:

    我知道你提到你应该使用IntDouble,但如果可以的话,我会尝试使用NSDecimalNumberString。它将为您提供所需的精度,并有一种方便的方法将字符串转换为NSDecimalNumberNSDecimalNumber(string: "6797.8905"),以及返回到字符串number.stringValue。您可以enteredAmount != NSDecimalNumber.notANumber 以防您的用户输入不兼容。

    【讨论】:

    • 是否可以在 NSDecimalNumner 的末尾附加一个数字?
    • 理想情况下,您的输入应该是 String 的文本,然后在需要时将其转换为 NSDecimalNumber。问题是,如果你想一想,没有像将数字“附加”到数值这样的事情。您正在做的是附加一个数字,而传统的数字类型并没有真正做到这一点。否则,我想您可以计算出您尝试添加的数值,然后正常添加,但这似乎没有必要且容易出错。
    • 在 Swift 中,我会使用 Decimal 而不是 NSDecimalNumber
    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    相关资源
    最近更新 更多