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:垃圾回收GC触发条件详解
Apr 24 Golang
golang中实现给gif、png、jpeg图片添加文字水印
Apr 26 Golang
golang中切片copy复制和等号复制的区别介绍
Apr 27 Golang
Golang 使用Map实现去重与set的功能操作
Apr 29 Golang
Golang 获取文件md5校验的方法以及效率对比
May 08 Golang
go开发alertmanger实现钉钉报警
Jul 16 Golang
golang内置函数len的小技巧
Jul 25 Golang
Go语言特点及基本数据类型使用详解
Mar 21 Golang
深入理解 Golang 的字符串
May 04 Golang
Go语言怎么使用变长参数函数
Jul 15 Golang
Go语言编译原理之变量捕获
Aug 05 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实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
Prototype Template对象 学习
2009/07/19 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
Vue拖拽组件开发实例详解
2018/05/11 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
用 python 进行微信好友信息分析
2020/11/28 Python
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
购房意向书
2014/04/01 职场文书
投资入股合作协议书
2014/10/28 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
欢送会主持词
2015/07/01 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
CPU不支持Windows11系统怎么办
2021/11/21 数码科技
Java实现给Word文件添加文字水印
2022/02/15 Java/Android