【问题标题】:Checking if a float can be an integer and returning it without the .00检查浮点数是否可以是整数并在没有 .00 的情况下返回它
【发布时间】:2018-07-18 01:25:16
【问题描述】:

我正在做一个测验百分比,尽管它目前返回为 [Mark].00。如果数字是 86% 或 100% 之类的整数,我只想返回整数,但如果数字是 75.77,则返回。

我目前有这个。

  func getScorePercentage() -> String {
    let result = (quizScore / Float(allQuestionsCount)) * 100

    if result as? Int {
       // return String(result)
    }

     return String(format: "%.2f", (quizScore / Float(allQuestionsCount)) * 100) + "%"
    }

【问题讨论】:

  • :/ 可以考虑使用NumberFormatter?
  • @MadProgrammer 我不需要那个,如果它是一个整数,我需要去掉 .00
  • 你是".00"的人。如果您不想要它,请不要这样做。
  • @matt 什么是浮点数?我显示为浮动
  • 这是一个字符串。是文字。你完全掌握它。让它看起来像你想要的样子。另外一个好主意是听取您的建议;问一个问题意味着你不知道答案,所以你不应该假设答案是错误的,因为你没有判断能力。

标签: swift


【解决方案1】:

快速操场测试...

let formatter = NumberFormatter()
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 0

formatter.string(from: NSNumber(floatLiteral: 100.00))
formatter.string(from: NSNumber(floatLiteral: 75.77))
formatter.string(from: NSNumber(floatLiteral: 100.003))

String(format: "%.2f", 100.00)
String(format: "%.2f", 75.77)
String(format: "%.2f", 100.003)

哪些输出...

"100"
"75.77"
"100"

"100.00"
"75.77"
"100.00"

【讨论】:

    【解决方案2】:

    自己用地板解决了。

      func getScorePercentage() -> String {
    
            let result = (quizScore / Float(allQuestionsCount)) * 100
    
            let isInteger = floor(result) == result
    
            if isInteger {
                return "\(Int(result))%"
            }
    
             return String(format: "%.2f", (quizScore / Float(allQuestionsCount)) * 100) + "%"
    
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 2011-08-13
      • 2015-12-24
      • 1970-01-01
      • 2020-11-26
      • 2013-11-29
      • 1970-01-01
      相关资源
      最近更新 更多