价格.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
    }
}

测试结果

参考

相关推荐
爱迪斯通1 分钟前
MANUS:用于视觉、语言、行动模型创建的高保真第一人称数据采集设备
前端
bjzhang754 分钟前
使用 HTML + JavaScript 实现在线知识挑战
前端·javascript·html
薛定谔的猫219 分钟前
Cursor 系列(3):关于MCP
前端·cursor·mcp
sheji341629 分钟前
【开题答辩全过程】以 基于web的拍卖系统设计与实现为例,包含答辩的问题和答案
前端
明月_清风1 小时前
模仿 create-vite / create-vue 风格写一个现代脚手架
前端·后端
aou1 小时前
让表格式录入像 Excel 一样顺滑
前端·ai编程
前端付豪1 小时前
必知 Express和 MVC
前端·node.js·全栈
重铸码农荣光1 小时前
CSS 也能“私有化”?揭秘模块化 CSS 的防坑指南(附 Vue & React 实战)
前端·css·vue.js
南囝coding1 小时前
CSS终于能做瀑布流了!三行代码搞定,告别JavaScript布局
前端·后端·面试
ccnocare1 小时前
git 创建远程分支
前端