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 24 Golang
Go缓冲channel和非缓冲channel的区别说明
Apr 25 Golang
使用Golang的channel交叉打印两个数组的操作
Apr 29 Golang
解决Golang中goroutine执行速度的问题
May 02 Golang
Golang: 内建容器的用法
May 05 Golang
Go 语言下基于Redis分布式锁的实现方式
Jun 28 Golang
Golang使用Panic与Recover进行错误捕获
Mar 22 Golang
golang生成vcf通讯录格式文件详情
Mar 25 Golang
victoriaMetrics库布隆过滤器初始化及使用详解
Apr 05 Golang
Go语言 详解net的tcp服务
Apr 14 Golang
Golang 字符串的常见操作
Apr 19 Golang
GoFrame基于性能测试得知grpool使用场景
Jun 21 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
php语言流程控制中的主动与被动
2012/11/05 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
PHP new static 和 new self详解
2017/02/19 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python实现的系统实用log类实例
2015/06/30 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
Django如何使用redis作为缓存
2020/05/21 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
物流专业求职计划书
2014/01/10 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
军训新闻稿范文
2015/07/17 职场文书