go - 使用 golang 检查字符串中存在的点数
问题描述
我有cmd prompt
,其中stdin
只接受字符串,但是一旦我收到字符串就需要convert to float
。当有人错误输入时,"0..1" instead of 0.1,
我需要检查它并显示错误信息。
msg := "enter the rate eg:{0.1}"
rate, err := RatePrompt(msg)
if err != nil {
fmt.Println("something went while entering rate, please re-enter")
}
func RatePrompt(cmrmsg string) (price string, err error) {
fmt.Println(" ")
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
price := scanner.Text()
return price, nil
}
//check for string contains multiple dot
rate, err := RatePrompt(msg)
if err != nil {
fmt.Println("something went while entering
rate, please re-enter")else{
///check for string contains multiple dot
}
}
检查字符串值中的多个点,如果存在多个点抛出错误
解决方案
如果您只是检查数字,请使用此而不是点检查
i, err := strconv.ParseFloat(elem, 64)
if err != nil {
numbers = append(numbers, i)
}
推荐阅读
- node.js - 如何使用 jest 在 node.js 中模拟 postgresql (pg)
- spring-boot - springboot应用程序中如何捕获zipkins中的日志
- vulkan - Vulkan 中是否有类似的资源状态衰减或提升概念?
- laravel - 此查询替换为 Laravel。laravel怎么写?
- vue.js - 如何在 vue-cli 中禁用缩小?
- android - LinearLayout 水平重力 setGravity() 不能以编程方式工作
- c# - 表的 ASP.NET 最佳实践
- xcode - 我可以通过 apex 代码配置新的远程站点设置吗?
- python - Qt 应用程序在单独的线程中运行时无法为 GIF 设置动画
- java - 杰克逊确定列表字段的子类