gpt4 book ai didi

iphone - iPhone如何自动插入小数位?

转载 作者:行者123 更新时间:2023-12-03 18:58:55 24 4
gpt4 key购买 nike

我知道这个问题过去已经被问过几次了,但我尝试的一切都失败了。我有一个带有 UILabel 的自定义数字键盘。当我点击“1”时,UILabel 显示一个 1。现在这就是我正在尝试做的事情:

  • 当我点击“1”按钮时,我想要:UILabel 中的 0.01
  • 后面是一个我想要的“4”按钮:UILabel 中的 0.14
  • 然后是“6”:1.46
  • 等等,等等

现在键盘和 UILabel 工作得很好。我现在只需要让小数起作用。任何示例代码都很棒(以及我应该将其放置在应用程序中的位置)。如果您想查看到目前为止我的代码,请告诉我。非常简单。谢谢大家!

最佳答案

以下是我的做法:

#define NUMBER_OF_DECIMAL_PLACES 2
NSMutableArray *typedNumbers = ...; //this should be an ivar
double displayedNumber = 0.0f; //this should also be an ivar

//when the user types a number...
int typedNumber = ...; //the number typed by the user
[typedNumbers addObject:[NSNumber numberWithInt:typedNumber]];
displayedNumber *= 10.0f;
displayedNumber += (typedNumber * 1e-NUMBER_OF_DECIMAL_PLACES);
//show "displayedNumber" in your label with an NSNumberFormatter

//when the user hits the delete button:
int numberToDelete = [[typedNumbers lastObject] intValue];
[typedNumbers removeLastObject];
displayedNumber -= (numberToDelete * 1e-NUMBER_OF_DECIMAL_PLACES);
displayedNumber /= 10.0f;
//show "displayedNumber" in your label with an NSNumberFormatter

在浏览器中输入。警告实现者。使用 NSDecimal 而不是 double 的奖励积分。

对正在发生的事情的解释:

我们本质上是在进行位移位,但是以 10 为基数而不是以 2 为基数。当用户键入一个数字(例如:6)时,我们将现有数字向左移动一位小数(例如:0.000 => 00.00 ),将键入的数字乘以 0.01 (6 => 0.06),并将其添加到现有数字 (00.00 => 00.06)。当用户输入另一个数字(例如:1)时,我们会执行相同的操作。左移 (00.06 => 00.60),将键入的数字乘以 0.01 (1 => 0.01),然后添加 (00.60 => 00.61)。存储数字的目的是 NSMutableArray ,只是为了方便删除。然而,这没有必要。只是为了方便。

当用户点击删除按钮(如果有)时,我们取最后输入的数字(例如:1),将其乘以 0.01(1 => 0.01),然后从我们的数字中减去它(0.61 => 0.6 ),然后将我们的数字右移一位小数(0.6 => 0.06)。只要输入的数字数组中有数字,就重复此操作。当该数组为空时禁用删除按钮。

使用NSDecimal的建议只是为了允许非常高精度的数字。

关于iphone - iPhone如何自动插入小数位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4821014/

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