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

测试结果

参考

相关推荐
小高0071 分钟前
🚨 2025 最该淘汰的 10 个前端 API!
前端·javascript·面试
一枚前端小能手3 分钟前
🎨 页面卡得像PPT?浏览器渲染原理告诉你性能瓶颈在哪
前端·javascript
lssjzmn10 分钟前
性能飙升!Spring异步流式响应终极指南:ResponseBodyEmitter实战与架构思考
java·前端·架构
毕设源码-郭学长16 分钟前
【开题答辩全过程】以 基于vue在线考试系统的设计与实现为例,包含答辩的问题和答案
前端·javascript·vue.js
詩句☾⋆᭄南笙21 分钟前
初识Vue
前端·javascript·vue.js
Javian1 小时前
浅谈前端工程化理解
前端
艾小码1 小时前
新人必看!3天啃下大型前端项目,我是这样做到的
前端
袁煦丞1 小时前
宝塔FTP远程文件管理+安全防护:cpolar内网穿透实验室第417个成功挑战
前端·程序员·远程工作
三十_1 小时前
【NestJS】构建可复用的数据存储模块 - 动态模块
前端·后端·nestjs
干就完了11 小时前
js数组方法,其实也就这么多东西,一篇全搞懂
前端·javascript