func binaryToDecimal(val string) string {
// 获取二进制字符字符串
// 使用前可使用正则校验 [0-1]|[0-1].[0-1]
var text=val
// 指数 v1
var v1 float64=0
var len=len(text)
// 查看是否包含小数点
contains :=strings.Contains(text, “.”)
if contains {
index :=strings.LastIndex(text, “.”)
if index==(len -1) {
text=text[0 : len-1]
} else {
v3 :=len – index
v3–
v1=float64(0 – v3)
}
}
fmt.Println(v1)
// 结果
var result float64
for i :=len -1; i >=0; i– {
u :=string(text[i])
if u==”.” {
continue
}
v2,error :=strconv.ParseFloat(u, 64)
if error !=nil {
fmt.Println(“转换失败”,error)
}
// 乘数
pow :=math.Pow(2, v1)
// 数值累加
result=result + (v2 * pow)
// 指数递增
v1++
}
// 这里有个BUG,未判断得出的十进制数小数点后面有几位小数
return strconv.FormatInt(int64(result), 10)
}
// 获取二进制字符字符串
// 使用前可使用正则校验 [0-1]|[0-1].[0-1]
var text=val
// 指数 v1
var v1 float64=0
var len=len(text)
// 查看是否包含小数点
contains :=strings.Contains(text, “.”)
if contains {
index :=strings.LastIndex(text, “.”)
if index==(len -1) {
text=text[0 : len-1]
} else {
v3 :=len – index
v3–
v1=float64(0 – v3)
}
}
fmt.Println(v1)
// 结果
var result float64
for i :=len -1; i >=0; i– {
u :=string(text[i])
if u==”.” {
continue
}
v2,error :=strconv.ParseFloat(u, 64)
if error !=nil {
fmt.Println(“转换失败”,error)
}
// 乘数
pow :=math.Pow(2, v1)
// 数值累加
result=result + (v2 * pow)
// 指数递增
v1++
}
// 这里有个BUG,未判断得出的十进制数小数点后面有几位小数
return strconv.FormatInt(int64(result), 10)
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。