gpt4 book ai didi

xcode - Swift 中的 double 范围

转载 作者:可可西里 更新时间:2023-11-01 00:53:51 24 4
gpt4 key购买 nike

我目前正在编写一个 Swift 应用程序,它的一部分需要确保某些用户输入的总和达到指定的值。

一个简化的例子:

通过程序交互,用户指定了 totalValue = 67 和 turns = 2。这意味着在两个输入中,用户将必须提供两个值加起来为 67。

假设用户在第 1 轮输入 32,然后在第 2 轮输入 35,这是有效的,因为 32 + 35 = 67。

一切正常,但当我们接近小数点后一位时,程序无法正确添加数字。例如,如果 totalValue = 67 然后在第 1 轮用户输入 66.95 然后在第 2 轮他输入 .05 程序将返回这是一个错误,尽管事实上66.95 + .05 = 67。此问题不会发生在小数点后一位或更少的情况下(例如 turn 1 = 55.5 和 turn 2 = 11.5 可以正常工作),仅适用于两位小数点或更多。我将值存储为 double 值。提前致谢

一些示例代码:

var totalWeights = 67
var input = Double(myTextField.text.bridgeToObjectiveC().doubleValue)

/*Each turn is for a button click*/

/*For turn 1*/
if inputValid == true && turn == 1 && input < totalWeights
{

myArray[0] = input

}
else
{
//show error string
}

/*For turn 2*/
if inputValid == true && turn == 2 && input == (totalWeights - myArray[0])
{

myArray[1] = input

}
else
{

//show error string

}

最佳答案

如果您需要 float 的精确值,那么 float/double 类型将不起作用,因为它们只是精确数字的近似值。考虑在 Swift 中使用 NSDecimalNumber 类,我不确定桥接会是什么样子,但它应该很简单。

关于xcode - Swift 中的 double 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24357498/

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