每当我尝试获取Float80的字符串表示时,我都无法越过小数部分的前20位数字。
let fract: Float80 = Float80(exactly: Float80(1) / Float80(i))!
let stringRep = fract.description
我也试过PI
print(Float80.pi.debugDescription)
答案 0 :(得分:2)
Float80.exponentBitCount /* 15 */
Float80.significandBitCount /* 63 */
类型的精度如下:
Double
此外,此结构的第一位用于符号。
但是! Apple文档says:
15 decimal digits
的精度至少为Float
,而精度为6 decimal digits
可以少到at least
。要使用的适当浮点类型取决于您需要在代码中使用的值的性质和范围。在任何一种都适合的情况下,最好使用Double。
因此,重点必须放在 def get_nested_elements_by_index(nested_list, index):
output_list = []
for sub_list in nested_list:
if len(sub_list) > index:
output_list.append(sub_list[index])
return output_list
nested = [
["nest1_A", "nest1_B", "nest1_C"],
["nest2_A", "nest2_B", "nest2_C"],
["nest3_A", "nest3_B", "nest3_C"],
]
print(
"First set:\n{first}\n\nSecond set:\n{second}\n\nThird set:\n{third}\n".format(
first="\n".join(get_nested_elements_by_index(nested, 0)),
second="\n".join(get_nested_elements_by_index(nested, 1)),
third="\n".join(get_nested_elements_by_index(nested, 2)),
)
)
的15个十进制数字上。不能保证为您提供更高的精度。但是所有计算都是在80位的位深度进行的。
希望这会有所帮助。