浮点数是32个二进制数字,双数字是64个二进制数字吗?文档太难理解了.
所有位都转换为有效数字?或者小数点的位置是否占用了一些位?
我没有看到Swift语言参考中的基本算术运算符中定义了一个取幂运算符.
语言中是否真的没有预定义的整数或浮点运算运算符?
我有一个我正在修改的考试题目,问题是4分.
"在java中,我们可以将int分配给double或float".这会丢失信息吗?为什么?
我已经说过,因为int通常具有固定的长度或大小 - 存储数据的精度是有限的,其中以浮点存储信息可能是无限的,基本上我们丢失信息因为这个
现在我有点粗略地说我是否在这里击中了正确的区域.我非常肯定它会失去精确度,但我无法完全理解为什么.我能得到一些帮助吗?
在这里我的代码.我正在传递两个值CGRectMake(..)
并获得和错误.
let width = CMVideoFormatDescriptionGetDimensions(device.activeFormat.formatDescription as CMVideoFormatDescriptionRef!).width
// return Int32 value
let height = CMVideoFormatDescriptionGetDimensions(device.activeFormat.formatDescription as CMVideoFormatDescriptionRef!).height
// return Int32 value
myLayer?.frame = CGRectMake(0, 0, width, height)
// returns error: '`Int32`' not convertible to `CGFloat`
Run Code Online (Sandbox Code Playgroud)
如何转换Int32
为CGFloat
不返回错误?
我在对一些数字进行排序时遇到问题,这些数字首先是字符串。对于 UInt64 来说数字太大了,所以我将字符串数字转换为浮点数,然后对其进行排序。效果很好。但随后我需要打印这些没有小数的数字。所以我尝试格式化数字。但更大的数字在格式化后会改变它的值。
这是要排序的输入数组 -
["6","31415926535897932384626433832795","1","3","10","3","5"]
我需要以这种格式打印输出 -
1
3
3
5
10
31415926535897932384626433832795
这是我的快速代码 -
import Foundation
var a = Array<Float>()
var b = ["6","31415926535897932384626433832795","1","3","10","3","5"]
a = b.map{ Float($0)! }
for i in 0..<(a.count-1){
var min = i
for j in (i+1)..<a.count{
if a[j] < a[min] {
min = j
}
}
var temp = a[i]
a[i] = a[min]
a[min] = temp
}
for val in a{
print(String(format: "%.0f",val.rounded(.down)))
}
Run Code Online (Sandbox Code Playgroud)
我的输出是 -
1
3
3
5
6
10
31415927314585224784361549725696 …