Go 實現英尺和米的簡單單位換算方式

看代碼吧~

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))
   }
}

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。