婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux下科學計數法(e)轉化為數字的方法

Linux下科學計數法(e)轉化為數字的方法

熱門標簽:湖北孝感如何辦理 輝縣市地圖標注 北京電銷機器人對市場的影響 外呼系統的合法性 房產證地圖標注的兩個面積 地圖標注x是啥意思 武漢語音電銷機器人加盟 同花順電話機器人微信 威海電銷外呼系統好用嗎

科學計數法使用e標識數值,將科學計算學轉化為數字的思路:按e右邊的數字移動小數點位數。e右邊的數字如果是負數,則向左移動小數點。示例如下:

1.2345678e2 = 123.45678
1.2345678e-2 = 0.012345678
1.7615562e+06 = 1761556.2
1.87982e7 = 18798200
1e3 = 1000

那么在shell中,如何轉化科學計數法為數字呢,方法如下:這里以"1.7615562e+06" (或者1.7615562e6)為示例:

[root@kevin ~]# echo "1.7615562e6"| gawk '$1=strtonum($1)'
1.76156e+06

1)科學計數法轉為十進制

[root@kevin ~]# printf "%f" 1.7615569e+06
1761556.900000
 
[root@kevin ~]# echo "1.7615569e+06"| awk '{printf("%f",$0)}' 
1761556.900000
 
[root@kevin ~]# echo "1.7615569e+03"| awk '{printf("%f",$0)}'
1761.556900
 
[root@kevin ~]# echo "1.7615569e+04"| awk '{printf("%f",$0)}'
17615.569000
 
[root@kevin ~]# echo "1.7615569e-6"| awk '{printf("%f",$0)}'
0.000002
 
[root@kevin ~]# echo "1.7615569e-4"| awk '{printf("%f",$0)}'
0.000176
 
[root@kevin ~]# echo "1.7615569e-3"| awk '{printf("%f",$0)}'
0.001762
 
[root@kevin ~]# echo "1.7615569e-2"| awk '{printf("%f",$0)}'
0.017616

需要注意: 這種方法,轉化結果中小數點后面都保留6位:
1)e后面的數字若是正數,則小數點后面要保留6位,不夠的話,用0補上。
2)e后面的數字若是負數,則小數點后面要保留6位,多的話,此時按照四舍五入,保留6位。

2)科學計數法轉為十進制并保留兩位小數

[root@kevin ~]# echo "1.7615569e+06"| awk '{printf("%.2f",$0)}'  
1761556.90

保留三位小數

[root@kevin ~]# echo "1.7615569e+06"| awk '{printf("%.3f",$0)}'  
1761556.900

3)科學計數法轉為十進制并取整

[root@kevin ~]# echo "1.7615569e+06"|awk '{printf("%d",$0)}' 
1761556
 
[root@kevin ~]# echo "1.7615569e3"|awk '{printf("%d",$0)}'  
1761
 
[root@kevin ~]# echo "1.7615569e02"|awk '{printf("%d",$0)}' 
176

4)科學計數法轉十進制并四舍五入取整

[root@kevin ~]# echo "1.7615569e+06"| awk '{printf("%d",$0+0.5)}' 
1761557
 
[root@kevin ~]# echo "1.7615563e+06"| awk '{printf("%d",$0+0.5)}' 
1761556

5)如何將小數點后無用的0去掉, 可以參考: 日常運維的Shell腳本中截取字符串的做法,即用變量擴展的方式

[root@kevin ~]# echo "1.7615569e+06"| awk '{printf("%f",$0)}'
1761556.900000
 
[root@kevin ~]# var=$(echo "1.7615569e+06"| awk '{printf("%f",$0)}')
[root@kevin ~]# echo ${var%%0*}
1761556.9

或者使用sed方法也可以

[root@kevin ~]# echo "1.7615569e+06"| awk '{printf("%f",$0)}'   
1761556.900000
 
[root@kevin ~]# var=$(echo "1.7615569e+06"| awk '{printf("%f",$0)}')
[root@kevin ~]# echo "$var"|sed 's/0*$//'
1761556.9
 
[root@kevin ~]# echo "1.7615569e+06"| awk '{printf("%f",$0)}'| sed 's/0*$//'
1761556.9

6)sed去除掉小數點之后的字符

[root@kevin ~]# echo "kevin.123"|sed "s/\.*//g"
kevin123
 
\..*代表了小數點之后的1到多個
[root@kevin ~]# echo "kevin.123"|sed "s/\..*//g"
kevin
 
 
[root@kevin ~]# echo "kevin_123"|sed "s/\_*//g"
kevin123
 
[root@kevin ~]# echo "kevin_123"|sed "s/\_.*//g"
kevin

命令解釋:
*代表0到多個。故\.*只能替換掉小數點變成空。\_*同理。
.*代表1到多個。故\..*將小數點后的全部去掉了。\_.*同理。

7)shell中的數字計算說明

 1)bc方法
bc是比較常用的linux計算工具了,而且支持浮點運算:
[root@kevin ~]# a=`echo 1+1 | bc`
[root@kevin ~]# echo $a
2
 
這種方法沒法解決浮點數運算的精度問題,如下幾種浮點數計算情況就傻X了!
[root@kevin ~]# a=`echo 1+1 | bc`
[root@kevin ~]# echo $a
2
[root@kevin ~]# b=`echo "1.2*1.2" | bc`
[root@kevin ~]# echo $b
1.4
[root@kevin ~]# c=`echo "5.0/3.0" | bc`
[root@kevin ~]# echo $c
1
[root@kevin ~]# d=`echo "scale=2;5.0/3.0" | bc`
[root@kevin ~]# echo $d
1.66
[root@kevin ~]# e=`echo "scale=2;5.0/6.0" | bc`
[root@kevin ~]# echo $e
.83
 
2)expr方法
不支持浮點數計算,這是個坑,而且要注意數字與運算符中的空格。
[root@kevin ~]# a=`expr 1+1`
[root@kevin ~]# echo $a
1+1
[root@kevin ~]# a=`expr 1 + 1`
[root@kevin ~]# echo $a
2
[root@kevin ~]# b=`expr 10 / 2`
[root@kevin ~]# echo $b
5
 
3)$(())方法
同expr,不支持浮點數運算
[root@kevin ~]# a=$((1+1))
[root@kevin ~]# echo $a
2
[root@kevin ~]# b=$((1 + 3 ))
[root@kevin ~]# echo $b
4
 
4)let方法
不支持浮點數運算,而且不支持直接輸出,只能賦值
[root@kevin ~]# let a=1+1
[root@kevin ~]# echo $a
2
[root@kevin ~]# let b=50/5
[root@kevin ~]# echo $b
10
[root@kevin ~]# let c=1.2*2
-bash: let: c=1.2*2: syntax error: invalid arithmetic operator (error token is ".2*2")
 
5)awk方法
普通的運算:
[root@kevin ~]# a=`echo | awk '{print 1.0/2.0}'`
[root@kevin ~]# echo $a
0.5
 
控制精度:
[root@kevin ~]# b=`echo | awk '{printf("%.2f",1.0/2.0)}'`
[root@kevin ~]# echo $b
0.50
 
傳遞參數:
[root@kevin ~]# c=`echo | awk -v a=1 -v b=3 '{printf("%.4f",a/b)}'`
[root@kevin ~]# echo $c
0.3333
 
awk結合BEGIN(小數點后面保留6位)
[root@ss-server ~]# awk 'BEGIN{printf "%.2f%%\n",(87/500)*100}'
17.40%
[root@ss-server ~]# awk 'BEGIN{printf "%.2f%%\n",(100/300)*100}'
33.33%

綜合來看,還是awk的方法最靠譜,其他的方式都有相應問題。所以推薦在日常維護場景下使用awk來搞數學計算。

到此這篇關于Linux下科學計數法(e)轉化為數字的方法 的文章就介紹到這了,更多相關Linux e轉化為數字內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • linux shell實現判斷輸入的數字是否為合理的浮點數
  • 101個shell腳本 猜數字游戲代碼
  • Shell中判斷字符串是否為數字的6種方法分享
  • Shell腳本中判斷變量為數字的3種方法
  • Shell腳本實現的猜數字小游戲
  • PowerShell中把IP轉換為長整形數字的方法
  • shell實現數字打印從100到200的數
  • shell字符串比較判斷是否為數字

標簽:蚌埠 麗江 安康 迪慶 紹興 武威 西寧 日喀則

巨人網絡通訊聲明:本文標題《Linux下科學計數法(e)轉化為數字的方法》,本文關鍵詞  Linux,下,科學,計數,法,轉,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux下科學計數法(e)轉化為數字的方法》相關的同類信息!
  • 本頁收集關于Linux下科學計數法(e)轉化為數字的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产肉丝袜一区二区| 免费人成网站在线观看欧美高清| 久久国产精品区| 中文字幕一区二区5566日韩| 91精品国产一区二区三区蜜臀| 豆国产96在线|亚洲| 日韩电影免费一区| 亚洲免费看黄网站| 久久久精品国产免费观看同学| 在线免费观看成人短视频| 国产精品主播直播| 日本视频在线一区| 亚洲第一狼人社区| 一区二区三区欧美在线观看| 亚洲国产岛国毛片在线| 日韩欧美不卡在线观看视频| 在线免费观看一区| 91在线你懂得| 成人亚洲精品久久久久软件| 老司机午夜精品| 日本少妇一区二区| 亚洲大尺度视频在线观看| 1024成人网| 日韩伦理免费电影| 亚洲精品日韩综合观看成人91| 国产欧美一区二区精品久导航| 欧美一区二区三区在线观看| 成人免费视频一区| 欧美视频一区二区三区| 久久不见久久见免费视频7| 在线观看亚洲精品视频| 91小视频免费看| 国产成人aaaa| 91精品国产综合久久香蕉麻豆| 国产精品女同互慰在线看| 国产一区二区三区四| 一区二区三区在线视频观看58| 精品国产免费久久| 欧美中文字幕亚洲一区二区va在线| 成人综合在线观看| 精品一区二区免费视频| 五月婷婷久久丁香| 偷拍与自拍一区| 蜜桃一区二区三区在线| 久久国内精品自在自线400部| 青青草成人在线观看| 欧美96一区二区免费视频| 蜜臀91精品一区二区三区| 亚洲精品一二三四区| 午夜国产精品一区| 久久精品av麻豆的观看方式| 久久成人久久爱| 成人美女在线观看| 91国产丝袜在线播放| 久久久欧美精品sm网站| 国产精品久久久久一区二区三区| 亚洲免费观看在线观看| 丝袜a∨在线一区二区三区不卡| 麻豆精品国产传媒mv男同| 高清视频一区二区| 色8久久精品久久久久久蜜| 6080午夜不卡| 亚洲国产精品激情在线观看| 国产精品灌醉下药二区| 婷婷综合久久一区二区三区| 国产美女精品人人做人人爽| 99麻豆久久久国产精品免费| 欧美精品乱码久久久久久按摩| 国产无人区一区二区三区| 亚洲精品国产一区二区三区四区在线| 丝袜诱惑制服诱惑色一区在线观看| 激情av综合网| 在线观看中文字幕不卡| 久久综合久久综合亚洲| 精品99999| 亚洲午夜av在线| 经典一区二区三区| 欧美视频在线观看一区二区| 国产欧美中文在线| 麻豆91精品91久久久的内涵| 欧美吻胸吃奶大尺度电影 | 91精品视频网| 日韩码欧中文字| 91网上在线视频| 国产精品久久久久久久久免费桃花| 狠狠网亚洲精品| 精品少妇一区二区三区在线视频| 婷婷久久综合九色综合绿巨人| 色综合久久久网| ...中文天堂在线一区| 成人美女视频在线看| 久久久99免费| 国产在线一区二区综合免费视频| 日韩午夜激情电影| 亚洲精品少妇30p| 91女厕偷拍女厕偷拍高清| 精品卡一卡二卡三卡四在线| 亚洲品质自拍视频| 国产乱理伦片在线观看夜一区| 中文字幕不卡在线观看| 国产91精品精华液一区二区三区| 在线观看国产日韩| 欧美精品日韩一区| www久久精品| 国产视频亚洲色图| 亚洲欧洲综合另类在线| 日韩av二区在线播放| 久久国产麻豆精品| 国产精品一区免费在线观看| 国产aⅴ综合色| 欧美一区二区三区视频在线观看| 欧美日韩五月天| 成人美女视频在线观看18| 成人激情开心网| 欧美亚洲图片小说| 日韩欧美精品在线| 国产日韩欧美高清| 伊人婷婷欧美激情| 国产精品久久毛片av大全日韩| 91日韩在线专区| 欧美精品vⅰdeose4hd| 久久久精品免费观看| 国产精品五月天| 亚洲一级在线观看| 国产91精品在线观看| 欧美视频一区二区三区在线观看 | 欧美精品一区二区三| 久久久另类综合| 亚洲一区在线播放| 国产成人精品一区二| 欧美日韩国产综合一区二区三区| 精品国产乱码久久久久久影片| 亚洲欧美日韩精品久久久久| 美腿丝袜在线亚洲一区| 成人精品gif动图一区| 欧美中文字幕亚洲一区二区va在线| 成人一级视频在线观看| 亚洲一区二区成人在线观看| 粉嫩绯色av一区二区在线观看| 91精品综合久久久久久| 欧美韩国日本不卡| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品一区二区x88av| 欧美日韩久久久久久| 欧美国产欧美综合| 免费的成人av| 在线精品视频免费播放| 久久久99免费| 中文字幕免费不卡| 欧美日韩精品一二三区| 亚洲免费av高清| 久久不见久久见免费视频7| 欧美色图第一页| 日韩欧美在线123| 婷婷久久综合九色综合绿巨人| av一区二区三区| 26uuu亚洲综合色欧美| 美女视频免费一区| 久久99热狠狠色一区二区| 亚洲免费资源在线播放| 国产激情一区二区三区四区 | 欧美激情在线一区二区三区| 美腿丝袜亚洲色图| 欧美色男人天堂| 日韩一区二区在线观看视频| 亚洲一卡二卡三卡四卡无卡久久| 麻豆精品一区二区综合av| 日韩欧美亚洲另类制服综合在线| 日本欧美肥老太交大片| 91麻豆精品国产综合久久久久久| 久久精品免视看| 欧美精品一区二区久久久| 一区二区三区色| 国产·精品毛片| 亚洲va天堂va国产va久| 成熟亚洲日本毛茸茸凸凹| 在线视频国产一区| 国产视频一区二区三区在线观看 | 91精品国产丝袜白色高跟鞋| 欧美成人a在线| 韩国精品主播一区二区在线观看| 欧美精品一卡两卡| 喷水一区二区三区| 91麻豆国产福利精品| 国产成人在线网站| 国产性天天综合网| 亚洲三级电影网站| 国产老女人精品毛片久久| 国产一区二区三区免费看| 中文一区二区在线观看| 日韩电影免费一区| 欧美成人伊人久久综合网| 国产精品乱人伦一区二区| 久久综合九色综合97婷婷| 色婷婷精品久久二区二区蜜臂av | 日本亚洲三级在线| 久久久国产午夜精品 | 麻豆91在线播放免费| 精品一区二区三区日韩| 欧美日韩免费一区二区三区视频 |