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中semaphore(信号量)源码
Apr 03 Golang
基于go interface{}==nil 的几种坑及原理分析
Apr 24 Golang
用golang如何替换某个文件中的字符串
Apr 25 Golang
golang通过递归遍历生成树状结构的操作
Apr 28 Golang
Golang 空map和未初始化map的注意事项说明
Apr 29 Golang
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
May 05 Golang
浅谈golang package中init方法的多处定义及运行顺序问题
May 06 Golang
浅谈Golang 切片(slice)扩容机制的原理
Jun 09 Golang
手把手教你导入Go语言第三方库
Aug 04 Golang
Go语言实现一个简单的并发聊天室的项目实战
Mar 18 Golang
Golang 入门 之url 包
May 04 Golang
Golang入门之计时器
May 04 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利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
任意位置显示html菜单
2007/02/01 Javascript
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
python内存管理分析
2015/04/08 Python
python简单实现计算过期时间的方法
2015/06/09 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
顶岗实习接收函
2014/01/09 职场文书
我的求职计划书
2014/01/10 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
公司外出活动方案
2014/08/14 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
小学教师教育随笔
2015/08/14 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书