无为清净楼资源网 Design By www.qnjia.com
最近在项目中碰到很多次float转string,同时要求保留小数点后几位,并且去掉小数点后0的场景
虽然问题很简单,但是隔了挺久没处理这种场景就有些生疏了,自己也搜了一下,很多回答都不太满意。这里贴一下自己的做法,如果有更好的解决办法的话,还请多多指教
// 主要逻辑就是先乘,trunc之后再除回去,就达到了保留N位小数的效果 func FormatFloat(num float64, decimal int) string { // 默认乘1 d := float64(1) if decimal > 0 { // 10的N次方 d = math.Pow10(decimal) } // math.trunc作用就是返回浮点数的整数部分 // 再除回去,小数点后无效的0也就不存在了 return strconv.FormatFloat(math.Trunc(num*d)/d, 'f', -1, 64) }
其他的一些常用的格式化浮点数的demo
// 2代表精度,这种方式会有小数点后无效的0的情况 strconv.FormatFloat(123.123 'f', 2, 64) // 效果同上 fmt.Sprintf("%.2f", 123.123) // g可以去掉小数点后无效的0 fmt.Sprintf("%g", 123.00) // 效果同上,可以去掉0,但是达不到保留指定位数的效果 strconv.FormatFloat(a, 'g', -1, 64)
上面这些例子其实灵活运用一下也可以达到最开始的效果
ps:下面看下golang 浮点数保留n位小数
程序员的天敌产品同学,就像UI妹子的甲方爸爸,总会提些你不想写的需求,还不能动手,比如某个数值经过 ÎÒ´òµÄ¾ÍÊÇÂÒÂë ,先保留3位小数,再经过%¥#@%&*%¥#%,再保留2位小数,在经过"htmlcode">
func ChangeNumber(f float64, m int) string { n := strconv.FormatFloat(f, ‘f', -1, 32) if n == “” { return “” } if m >= len(n) { return n }。 newn := strings.Split(n, “.”) if len(newn) < 2 || m >= len(newn[1]) { return n } return newn[0] + “.” + newn[1][:m] }
为啥返回字符串类型??因为浮点数再进行各种各样的计算之后,很可能精度丢失,其中一个方法就是进行一次运算之后转化成字符串类型,然后由字符串类型转化成float类型,再进行接下来的运算,稳稳的"color: #ff0000">总结
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年06月01日
2024年06月01日
- PUCK《天蓝色的彼岸》[FLAC/分轨][74.02MB]
- Edward Chan《Blueprint of Memories》[320K/MP3][48.3MB]
- 张敬轩.2007-MY1STCOLLECTION【环球】2CD【WAV+CUE】
- 著名歌手绝美音色经典老歌《超级音效王》DTS-WAV
- 流行靓声-群星《情网HQ》DTS[WAV]
- 群星《经典情歌对唱迟来的爱HQ》DTS[WAV]
- 群星2024《传承(太平洋影音四十五周年纪念专辑)4CD》[FLAC]
- 太平洋唱片中国轻音乐1-10全集[竹锦+影视篇+民歌篇+创作篇等]10CD[APE分轨+CUE]
- 群星《2024第一季度百度排行100首》[FLAC/分轨][2.3G]
- 证声音乐图书馆《聆听·心流·爵士 Flow Jazz》[320K/MP3][77.28MB]
- 证声音乐图书馆《聆听·心流·爵士 Flow Jazz》[FLAC/分轨][132.74MB]
- dnf手游为什么不上线了
- dnf手游韩服怎么重新转职
- 雷婷《婷婷醉歌》发烧版K2HD[正版CD低速原抓WAV+CUE]
- 西卿.1997-西北风(布袋戏精选)【金瓜石】【WAV+CUE】