草庐IT

double-double-arithmetic

全部标签

ios - 确保输入 Double 具有特定格式

我想检查某个Double输入是否为以下形式:“数字最多保留一位小数”。所以可以的是,例如,100//thisisok100.3//thisisok100.3//thisisok1.333//thisisnotok10.333//thisisnotok我尝试使用正则表达式,但不知何故它不起作用。我可以使用更简单的解决方案吗?我用过这段代码funcvalidate(input:Double)->Bool{letregex="^[1-9]*((\\.|,)[0-9]{1})?$"letinputTest=NSPredicate(format:"SELFMATCHES%@",regex)ret

xcode - Swift中 double LCM的算法

我需要将double组转换为整数,同时保持它们的比率相同并尽可能简单。例如[0.7,0,-0.7]应该变成[1,0,-1]而[24,12,0]应该变成[2,1,0]。我不确定这是否涉及获得double的最小公倍数,如果是这样,将如何完成? 最佳答案 (代码已针对Swift4及更高版本更新。)首先,float没有GCD和LCM。你必须先将输入转换为有理数。这并不像听起来那么容易,因为像0.7这样的小数不能精确地表示为二进制float,并且将在Double中存储为类似0.69999999999999996的内容。因此,如何从那里到达7/

ios - 将 double 值插入 Swift 字符串

我正在尝试使用以下格式创建NSPredicate:varaPredicate=NSPredicate(format:"latitude>=%dANDlatitude=%dANDlongitude我一直遵循的教程是使用日期并使用了%@,我遇到了一个错误,因为latitude>=nil不起作用。当我最终意识到我需要一种不同的插值格式时,我试图查找使用double的正确方法,但我似乎无法找到这方面的任何信息。%d就像我现在在我的代码中给了我latitude>=0以及其余的0s。我将如何让整个double正确地进入空间? 最佳答案 根据Ap

ios - 在 Double 中获得奇怪的值(value)

你好,我在学习swift的时候做了一个“Clicker”作为第一个项目,我有一个自动计时器,它应该从其他数字中删除一些数字,但有时我得到像0.600000000000001这样的值,我不知道为什么。这是我的“攻击”函数,它从僵尸的生命值中移除0.2。letfGruppenAttackTimer=NSTimer.scheduledTimerWithTimeInterval(1,target:self,selector:Selector("fGruppenAttackTime"),userInfo:nil,repeats:true)funcfGruppenAttackTime(){zHea

swift - 如何将 UnsafeMutablePointer<Double> 数组转换为 Double 数组?

我创建了一个这样的数组varoutputReal=UnsafeMutablePointer.allocate(capacity:numeroDados)现在我需要将其转换为Double数组。我可以用这样的东西来转换它:varnewArray:[Double]=[]foriin0..但我记得在页面上看到过另一种方法。有什么想法吗? 最佳答案 首先创建一个UnsafeBufferPointer引用相同的内存区域。那是一个Collection这样您就可以从该内存创建和初始化一个数组:letbufPtr=UnsafeBufferPointe

ios - 将 NSObject 转换为 double

我有一个包含以下值的数组:[0.1,0.2,0.18,"other"]。我认识到添加“其他”使它成为一个NSObject数组。我希望能够在选择前三个值时将它们检索为double值,以便我可以将它们与其他double值相乘。但是,当我尝试简单地做时,它说“不能将二元运算符*与double和NSObject放在一起”。如何将NSObject类型转换或转换为double? 最佳答案 您可以使用as!强制转换://letvalues=[0.1,0.2,0.3,"other"]letval1=values[0]as!Doubleletval2

ios - Swift - 将数组中的值转换为 double 或 float

我有一个数组,其值是字符串(但所有字符串都是1.0、2.0等值)。我正在尝试将这些字符串转换为double或float,以便我可以将它们全部加在一起。我如何swift做到这一点? 最佳答案 letx=["1.0","1.5","2.0"]print(x.map{Double($0)!}) 关于ios-Swift-将数组中的值转换为double或float,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

objective-c - 处理时间戳时丢失 double

我有一个简单的XCTestCase:functestExample(){letdate="2015-09-21T20:38:54.379912Z";//asNSString;letdate1=1442867934.379912;XCTAssertEqual(date1,NSDate.sam_dateFromISO8601String(date).timeIntervalSince1970);}这个测试在不应该通过的时候通过了,原因有二:1442867934.379912在测试中变成了1442867934.379911,尽管它实际上只是一个重新打印的变量sam_函数(在下面复制)似乎以同

ios - 为什么在 Swift 中,当我从 Double 转换为 Int 时它会减去 1?

我有一些非常简单的代码,可以进行计算并将结果double型转换为整数型。letstartingAge=(Double(babyAge/2).rounded().nextDown)print(startingAge)foreachin0..startingAge的第一次打印给出了正确答案,例如5.0。但是当它转换为Int时,它给我的答案是4。当Double为6.0时,int为5。我觉得自己很蠢,但不知道自己做错了什么。 最佳答案 当您调用rounded()时,会将您的值四舍五入为最接近的整数。当您调用.nextDown时,您会得到比现

swift - 我可以强制 NSExpression 和 expressionValue 以某种方式假设 Doubles 而不是 Ints 吗?

我正在尝试对字符串进行数学运算。当我用NSExpression把一个字符串变成一个数学问题,然后用expressionValue得到结果时,Swift假设我想要一个整数。考虑这两个Playground示例:letcurrentCalculation="10/6"letcurrentExpression=NSExpression(format:currentCalculation)print(currentExpression)//10/6ifletresult=currentExpression.expressionValue(with:nil,context:nil)as?Doubl