当前位置: 首页 > 面试题库 >

Swift-从双精度字尾删除零

曹鹏海
2023-03-14
问题内容

从双精度中删除尾随零的功能是什么?

var double = 3.0
var double2 = 3.10

println(func(double)) // 3
println(func(double2)) // 3.1

问题答案:

在Swift 4中,您可以这样做:

extension Double {
    func removeZerosFromEnd() -> String {
        let formatter = NumberFormatter()
        let number = NSNumber(value: self)
        formatter.minimumFractionDigits = 0
        formatter.maximumFractionDigits = 16 //maximum digits in Double after dot (maximum precision)
        return String(formatter.string(from: number) ?? "")
    }
}

使用示例print (Double("128834.567891000").removeZerosFromEnd())
结果:128834.567891

您还可以计算字符串中有多少个十进制数字:

import Foundation

extension Double {
    func removeZerosFromEnd() -> String {
        let formatter = NumberFormatter()
        let number = NSNumber(value: self)
        formatter.minimumFractionDigits = 0
        formatter.maximumFractionDigits = (self.components(separatedBy: ".").last)!.count
        return String(formatter.string(from: number) ?? "")
    }
}


 类似资料:
  • 问题内容: 我想删除所有结尾的零而不截断或舍入该数字(如果没有的话)。例如,数字可能类似于,在这种情况下,尾随零应被删除。但是这个数字也可能 几乎是 不合理的,比如在屏幕的边缘。有没有办法设置DecimalFormat或其他类以减少尾随的零,同时保持不合理性不变? 问题答案: 如果您愿意切换到,则可以使用#stripTrailingZeroes()方法来完成此操作。

  • my我希望它只显示。我该怎么做?这就是我尝试过的- 但这只是四舍五入到2位。我希望删除小数之后的所有内容。包括小数。

  • 问题内容: 我有一个字符串,我想仅使用Java从字符串的结尾删除行尾字符 我想成为 (此问题类似于但与问题593671不同) 问题答案: 您可以使用。这修剪和字符在字符串的结尾 正则表达式的解释如下: 是包含和的字符类 是一个或多个重复 是弦末锚 参考文献 regular-expressions.info/Anchors,角色类,重复 相关话题 您还可以使用修剪字符串 开头 和 结尾 的 所有 空

  • 对于实现精确 IEEE 754 算术的 C99 编译器,是否存在型的 、的值,使得 ? 编辑:所谓“实现精确的IEEE754算法”,我指的是一个正确地将FLT_EVAL_METHOD定义为0的编译器。 提供符合IEEE 754标准的浮点数的C编译器只能将单精度除法替换为常数,如果所述逆本身可以完全表示为。 实际上,这种情况只发生在2的幂上。因此,程序员Alex可能确信< code>f / 2.0f

  • 我很感激每一个暗示,关于转移目标的文件实现。我已经研究了一些关于浮动精度的论文,但在过去的两周里没有取得太大的进展。 提前感谢!

  • 问题内容: 我有这样的字符串 我想删除,并从。我希望结果是。我怎样才能做到这一点? 问题答案: 正则表达式与replaceAll。 如果您只想在成对时删除\ r \ n(上面的代码删除了\ r或\ n),请执行以下操作: