首页 > 解决方案 > 使用 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
         }
   }

检查字符串值中的多个点,如果存在多个点抛出错误

标签: go

解决方案


如果您只是检查数字,请使用此而不是点检查

 i, err := strconv.ParseFloat(elem, 64)
    if err != nil {
        numbers = append(numbers, i)
    }


推荐阅读