国产探花免费观看_亚洲丰满少妇自慰呻吟_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函數是判斷字符串是否全為數字.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通渭县| 德格县| 清涧县| 新昌县| 吉安市| 饶河县| 鹤岗市| 南宁市| 霍州市| 那曲县| 拜泉县| 广元市| 乃东县| 咸阳市| 万年县| 平潭县| 宁阳县| 远安县| 凤翔县| 连云港市| 霍邱县| 紫云| 巨野县| 福安市| 唐河县| 榆林市| 河东区| 余江县| 龙南县| 景德镇市| 中江县| 临清市| 阿鲁科尔沁旗| 镇巴县| 沙洋县| 中宁县| 炎陵县| 张家界市| 崇阳县| 威远县| 年辖:市辖区|