价格.0处理

在项目中有500.0 或者500.00的情况需要处理

实习的同学写了一段这样的代码

swift 复制代码
public extension String {
    var trimZero: String {
        replacingOccurrences(of: ".00", with: "").replacingOccurrences(of: ".0", with:"")
    }
}

咋一看似乎没啥问题,结果也符合预期

但是上面的case其实没有覆盖全,例如:500.01 ,那上面的处理方式就有bug了,会被处理成5001

正确的处理方式

swift 复制代码
public extension String {
    var trimZero: String {
        guard let value = Double(self) else { return self }
        let formatter = NumberFormatter()
        formatter.minimumFractionDigits = 0
        formatter.maximumFractionDigits = 2
        return formatter.string(from: NSNumber(value: value)) ?? self
    }
}

测试结果

参考

相关推荐
木叶丸6 小时前
从 Loop 到 Graph:AI 智能体协作系统工程指南
前端·后端·架构
2501_915918417 小时前
免 Xcode 开发 iOS,工具链替代方案与编译、签名、安装
ide·vscode·macos·ios·个人开发·xcode·敏捷流程
吴懿不在 不负信仰8 小时前
从jQuery谈库与框架的设计之优劣
前端·javascript·jquery
灵析表格8 小时前
灵析表格手机号处理函数深度分析报告
前端·网络·json·wps·灵析表格·excel公式盒子
智海深蓝8 小时前
智慧渔业海上养殖数字孪生实践方向与难点拆解分析
java·前端·网络
初级代码游戏8 小时前
iOS开发 Swift 速记5:高级运算符
ios·移动开发·swift
丁引8 小时前
《数据清洗的艺术:如何用20行核心逻辑优雅地删除无标签图片》
前端·数据库·python
Bigger9 小时前
Han:一个让 AI Agent 也能做出高级中国风页面的 CSS 设计系统
前端·ai编程·设计
初级代码游戏9 小时前
iOS开发 Swift 速记4:函数与闭包
开发语言·ios·swift
梦想的旅途29 小时前
企业微信自动化:自动发送文本、图片、文件
前端·数据库·microsoft