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 相关文章推荐
golang正则之命名分组方式
Apr 25 Golang
解决Golang time.Parse和time.Format的时区问题
Apr 29 Golang
golang elasticsearch Client的使用详解
May 05 Golang
浅谈Go语言多态的实现与interface使用
Jun 16 Golang
golang fmt格式“占位符”的实例用法详解
Jul 04 Golang
go goroutine 怎样进行错误处理
Jul 16 Golang
Golang表示枚举类型的详细讲解
Sep 04 Golang
深入理解go slice结构
Sep 15 Golang
浅谈GO中的Channel以及死锁的造成
Mar 18 Golang
Go获取两个时区的时间差
Apr 20 Golang
Golang ort 中的sortInts 方法
Apr 24 Golang
详解Go语言中Get/Post请求测试
Jun 01 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
php实现评论回复删除功能
2017/05/23 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
常用的javascript设计模式
2017/01/11 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python 切换root 执行命令的方法
2019/01/19 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
敬老院活动总结
2014/04/28 职场文书
科学发展观标语
2014/10/08 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
清明节主题班会
2015/08/14 职场文书
Oracle中update和select 关联操作
2022/01/18 Oracle
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA