当前位置: 首页 > news >正文

CGFloat转NSString保持原有的精度,末尾不添加0

问题阐述:

我们进行CGFloat转NSString可能会遇到一个问题

例如有一个CGFloat的值为2.1,转化成NSString后显示2.1000...

解决办法:

方法一:

如何解决呢,可以使用%g格式符,可以保证传入的不管是2还是2.1都能保持原有的精度

%g格式符可以根据数值的大小自动选择最合适的表示方法,同时避免多余的小数位数。这将确保输入的 2.1 在转换后输出仍然是 2.1。

CGFloat myFloat = 2.1;
NSString *myString = [NSString stringWithFormat:@"%g", myFloat];
NSLog(@"%@", myString); // 输出: 2.1

 方法二:

我们也可以使用一个自定义一个方法来实现

- (NSString *)stringFromCGFloat:(CGFloat)floatValue {// 将 CGFloat 转换为字符串NSString *floatString = [NSString stringWithFormat:@"%g", floatValue];// 查找小数点的位置NSRange dotRange = [floatString rangeOfString:@"."];// 如果有小数点,则返回完整的字符串if (dotRange.location != NSNotFound) {return floatString;}// 如果没有小数点,则返回整数部分的字符串return [NSString stringWithFormat:@"%.0f", floatValue];
}

相关文章:

  • 『大模型笔记』如何让小型语言模型发挥作用!
  • 【odoo】常用的基本视图类型
  • 互联网的盈利模式
  • Kotlin基础——Typeclass
  • three.js 第八节 - gltf加载器、解码器
  • Linux_内核缓冲区
  • 高斯算法的原理及其与常规求和方法的区别
  • 计算机系统基础实训七-MallocLab实验
  • vmware虚拟机安装ubuntu20.04
  • 9、Spring之Bean生命周期~依赖注入(总)
  • python入门基础知识(错误和异常)
  • 兴顺物流管理系统的设计
  • 从开源EPR产品Odoo学习
  • Java之Hutool/Guava/Apache Commons工具包项目实践
  • Node.js 渲染三维模型并导出为图片
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • CAP 一致性协议及应用解析
  • Codepen 每日精选(2018-3-25)
  • Git同步原始仓库到Fork仓库中
  • Hexo+码云+git快速搭建免费的静态Blog
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript-Array类型
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • JS数组方法汇总
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 盘点那些不知名却常用的 Git 操作
  • 如何设计一个微型分布式架构?
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 我建了一个叫Hello World的项目
  • 学习ES6 变量的解构赋值
  • 延迟脚本的方式
  • 一起参Ember.js讨论、问答社区。
  • 正则表达式小结
  • Spring Batch JSON 支持
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #laravel 通过手动安装依赖PHPExcel#
  • #pragma data_seg 共享数据区(转)
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (11)MATLAB PCA+SVM 人脸识别
  • (13)Hive调优——动态分区导致的小文件问题
  • (4) PIVOT 和 UPIVOT 的使用
  • (c语言+数据结构链表)项目:贪吃蛇
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (待修改)PyG安装步骤
  • (十六)、把镜像推送到私有化 Docker 仓库
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (学习日记)2024.02.29:UCOSIII第二节