gpt4 book ai didi

ios - 使用 swift 格式化 double 型字符串

转载 作者:行者123 更新时间:2023-11-29 02:42:39 25 4
gpt4 key购买 nike

如何使用 swift 格式化 double 的字符串?我正在制作一个类似于 iOS 上的基本计算器的计算器,我需要一个解决方案来根据点后的字符数(总共不超过 9 位)更改显示的结果。

Example Table
|result | wished displayed result | current displayed result
| | |
|1.034 | 1.034 | 1.03
|1.000567 | 1.000567 | 1.00
|1.2 | 1.2 | 1.20

使用此代码:

result.text = String(format: "%.2f", displayNumber)

如果我得到 1.000334 结果它只显示 1.00

编辑:

我忘了说我最多不能超过 9 个字符,包括点。如果我删除 %.2f 我没有得到想要的结果,因为如果我得到 1.323429249430003442 作为结果,显示的结果将是 1.323429249430003442 有很多数字(不能超过 9 位数字,包括点),否则添加%.9f 不好,因为如果我的结果是 1.32,显示的结果将是 1.32000000,其中有很多不必要的零。

先谢谢大家

编辑 2(已解决):

如果以后有人任职,我是这样解决的:

var decimalNumberAsString = "\(resultNumber - floor(resultNumber))"
var decimalTrim: NSArray = decimalNumberAsString.componentsSeparatedByString(".")
numberOfDecimalPlaces = decimalTrim.objectAtIndex(1).length
if numberOfDecimalPlaces < 8 {
numberOfDecimalPlaces = decimalTrim.objectAtIndex(1).length + 1
}
else {
numberOfDecimalPlaces = 7
}
result.text = String(format: "%.\(numberOfDecimalPlaces)G", resultNumber)

最佳答案

这是因为您正在使用 %.2f。删除所有 float 格式。它应该可以解决您的问题。

编辑 回应评论...

或者,如果您担心长度太长,请将格式设置为您想要的任何精度。假设您希望精度为 8,比如 %.8f

关于ios - 使用 swift 格式化 double 型字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25572386/

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