如何在swift中向double追加一个数字

如何在swift中向double追加一个数字,swift,numbers,integer,append,double,Swift,Numbers,Integer,Append,Double,我试图在swift中制作一个计算器应用程序,作为我的IOS开发课程的练习。对于该应用程序,我试图在用户按下特定按钮后将一个数字附加到现有的双精度或整数,但我不知道如何添加 如果用户按下了,比如说5,那么我希望代码应该在他之前按下的数字后面加上5 例如: 用户已键入以下号码: 6797.890 现在他想在现有数字的基础上再加上5,使数字为: 6797.8905 我真的不知道如何在代码中做到这一点,我真的很感激如果有人能帮助我展示如何或提供一些资源网站的这个问题 非常感谢 Benji您必须将输入

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

如果用户按下了,比如说5,那么我希望代码应该在他之前按下的数字后面加上5

例如:

用户已键入以下号码:

6797.890
现在他想在现有数字的基础上再加上5,使数字为:

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

非常感谢


Benji

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


显示初始值后,仅在一个方向上(从输入到数据)从字符串转换为双精度。

我知道您提到应该使用
Int
Double
,但如果可以,我会尝试使用
NSDecimalNumber
String
。它将为您提供所需的精度,并且可以方便地将字符串转换为
NSDecimalNumber
NSDecimalNumber(字符串:“6797.8905”)
,以及返回字符串
number.stringValue
。您可以
enteredAmount!=NSDecimalNumber.notANumber
以防您的用户输入不兼容。

如果不需要执行此操作,您可以将double转换为字符串,将5添加到末尾,然后将其解析为double。我知道的唯一其他方法是使用数学,但这需要计算出数字已经有多少位小数。用户的输入应该被视为
字符串(毕竟,您可能使用
UITextField
进行输入)。用户输入新数字后,您读取文本字段的
text
属性,现在将
6797.8905
作为
字符串
。只有这样,你才能转换成双精度(或你正在使用的任何东西)来在内部存储数字。@paulvs我正在使用按钮,每个数字都有自己的按钮。我的建议是,当用户按下一个数字按钮时,你可以将该数字附加到一个字符串中,该字符串保存用户迄今为止输入的内容。然后把它转换成双倍。@paulvs我也想过,但我也不知道怎么做,因此,我认为将数字附加到另一个数字比转换字符串和将数字附加到字符串更容易。是否可以将数字附加到NSDecimalNumner的末尾?理想情况下,您的输入应该是一个
字符串
,然后在需要时将其转换为
NSDecimalNumber
。问题是,如果你仔细想一想,根本不存在在数值上“附加”数字这样的事情。您所做的是追加一个数字,而传统的数字类型实际上并不这样做。否则,我想你可以计算你要添加的数值,然后正常添加,但这似乎是不必要的,而且容易出错。在Swift中,我会使用
decimalnumber
而不是
NSDecimalNumber