Go 实现英尺和米的简单单位换算方式


Posted in Golang onApril 29, 2021

看代码吧~

package main 
import (
    "fmt"
    "os"    
    "strconv"
)
 
type Feet float64
type Meter float64
 
func main() {
    var transType string = os.Args[2]
    var transferObject string = os.Args[1]
    parseObj, _ := strconv.ParseFloat(transferObject, 64)
 
    if transType == "feet" {
        // transfer to meter
        fmt.Println(toFeet(Meter(parseObj)))
    } else {
        fmt.Println(toMeter(Feet(parseObj)))
    } 
} 
 
func toMeter(feet Feet) Meter {
    return Meter(feet * 0.3048)
}
 
func toFeet(meter Meter) Feet {
    return Feet(meter * 1 / 0.3048)
}  
// 保存后 go run test.go 1 feet 输出1米=多少英尺

补充:golang go语言中 对文件大小字节单位的换算 EB TB GB MB KB B 保留小数

看代码吧~

// 字节的单位转换 保留两位小数
func formatFileSize(fileSize int64) (size string) {
   if fileSize < 1024 {
      //return strconv.FormatInt(fileSize, 10) + "B"
      return fmt.Sprintf("%.2fB", float64(fileSize)/float64(1))
   } else if fileSize < (1024 * 1024) {
      return fmt.Sprintf("%.2fKB", float64(fileSize)/float64(1024))
   } else if fileSize < (1024 * 1024 * 1024) {
      return fmt.Sprintf("%.2fMB", float64(fileSize)/float64(1024*1024))
   } else if fileSize < (1024 * 1024 * 1024 * 1024) {
      return fmt.Sprintf("%.2fGB", float64(fileSize)/float64(1024*1024*1024))
   } else if fileSize < (1024 * 1024 * 1024 * 1024 * 1024) {
      return fmt.Sprintf("%.2fTB", float64(fileSize)/float64(1024*1024*1024*1024))
   } else { //if fileSize < (1024 * 1024 * 1024 * 1024 * 1024 * 1024)
      return fmt.Sprintf("%.2fEB", float64(fileSize)/float64(1024*1024*1024*1024*1024))
   }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Golang 相关文章推荐
go结构体嵌套的切片数组操作
Apr 28 Golang
golang 如何通过反射创建新对象
Apr 28 Golang
golang 在windows中设置环境变量的操作
Apr 29 Golang
使用golang编写一个并发工作队列
May 08 Golang
go开发alertmanger实现钉钉报警
Jul 16 Golang
go goroutine 怎样进行错误处理
Jul 16 Golang
Golang并发操作中常见的读写锁详析
Aug 30 Golang
Go语言实现一个简单的并发聊天室的项目实战
Mar 18 Golang
简单聊聊Golang中defer预计算参数
Mar 25 Golang
Go web入门Go pongo2模板引擎
May 20 Golang
Golang实现可重入锁的示例代码
May 25 Golang
Go语言测试库testify使用学习
Jul 23 Golang
Golang 空map和未初始化map的注意事项说明
彻底理解golang中什么是nil
基于Go Int转string几种方式性能测试
Apr 28 #Golang
Go语言中break label与goto label的区别
golang 如何用反射reflect操作结构体
Apr 28 #Golang
golang 生成对应的数据表struct定义操作
Apr 28 #Golang
golang 如何通过反射创建新对象
Apr 28 #Golang
You might like
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
求职简历中个人的自我评价
2013/12/01 职场文书
工厂保洁员岗位职责
2013/12/04 职场文书
女儿十岁生日答谢词
2014/01/27 职场文书
实习生个人总结范文
2015/02/28 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python