国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

linux shell實現判斷輸入的數字是否為合理的浮點數

2020-07-27 19:01:38
字體:
來源:轉載
供稿:網友

這個shell是來判斷輸入的數字是否為合理的浮點數

實現代碼如下:

#!/bin/sh# validfloat -- Tests whether a number is a valid floating-point value.# Note that this script cannot accept scientific (1.304e5) notation.# To test whether an entered value is a valid floating-point number, we# need to split the value at the decimal point. We then test the first part# to see if it's a valid integer, then test the second part to see if it's a# valid >=0 integer, so -30.5 is valid, but -30.-8 isn't.. validint  # Bourne shell notation to source the validint functionvalidfloat(){ fvalue="$1" if [ ! -z $(echo $fvalue | sed 's/[^.]//g') ] ; then  decimalPart="$(echo $fvalue | cut -d. -f1)"  fractionalPart="$(echo $fvalue | cut -d. -f2)"  if [ ! -z $decimalPart ] ; then   if ! validint "$decimalPart" "" "" ; then    return 1   fi  fi  if [ "${fractionalPart%${fractionalPart#?}}" = "-" ] ; then   echo "Invalid floating-point number: '-' not allowed /    after decimal point" >&2   return 1  fi  if [ "$fractionalPart" != "" ] ; then   if ! validint "$fractionalPart" "0" "" ; then    return 1   fi  fi  if [ "$decimalPart" = "-" -o -z "$decimalPart" ] ; then   if [ -z $fractionalPart ] ; then    echo "Invalid floating-point format." >&2 ; return 1   fi  fi else  if [ "$fvalue" = "-" ] ; then   echo "Invalid floating-point format." >&2 ; return 1  fi  if ! validint "$fvalue" "" "" ; then   return 1  fi fi return 0}

notice:
1): if [ ! -z $(echo $fvalue | sed 's/[^.]//g') ] 將輸入,以.分成整數和小數部分。
2):if [ "${fractionalPart%${fractionalPart#?}}" = "-" ] 判斷小數點后面如果接‘-'號,這輸出字符不合法
3)接著的一些if語句就是判斷小數及整數部分合不合法
4)由于 valiint函數沒給出,腳本不能完全執行,valiint函數是判斷字符串是否全為數字.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保靖县| 广平县| 大洼县| 西华县| 濮阳县| 龙井市| 宁夏| 泸西县| 桓仁| 合江县| 丰宁| 三明市| 竹北市| 商洛市| 开封县| 台南县| 宁城县| 莱西市| 罗平县| 寿光市| 福建省| 郸城县| 广德县| 清河县| 嘉禾县| 曲松县| 个旧市| 长岛县| 泾源县| 彰化县| 龙门县| 凤台县| 太仆寺旗| 正安县| 赣州市| 永平县| 崇阳县| 尤溪县| 阿合奇县| 抚顺县| 隆尧县|