首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在shell中将值从科学表示法转换为十进制?

在shell中将值从科学表示法转换为十进制?
EN

Unix & Linux用户
提问于 2018-02-11 21:03:48
回答 3查看 22.2K关注 0票数 11

如何在shell中将科学表示法中的值转换为十进制?(首选C壳)

另外,我希望将它从e-12转换为e-9,然后再转换为shell。

42.53e-12至0.04253。我必须这样做是为了一份名单。

EN

回答 3

Unix & Linux用户

发布于 2018-02-11 21:27:20

printf将从shell为您做这件事。

代码语言:javascript
复制
 $ FOO=42.53e-12
 $ BAR=$(printf "%.14f" $FOO)
 $ echo $BAR
 0.00000000004253
 $

在ancient+arcane C-shell中,这将是.

代码语言:javascript
复制
$ set FOO=42.53e-12
$ set BAR=`printf "%.14f" $FOO`
$ echo $BAR
0.00000000004253
$
票数 11
EN

Unix & Linux用户

发布于 2020-04-03 17:19:02

您可以尝试以下几种方法:

代码语言:javascript
复制
echo "3.0000000000e+02" | awk '{printf("%d",$0);}'

或者如果你希望有小数

代码语言:javascript
复制
echo ""3.676361000e+02" | awk '{printf("%0.2f",$0);}'
票数 1
EN

Unix & Linux用户

发布于 2018-10-20 16:41:10

可能不是最好的解决方案,但我设法做到了一个小黑客。你可以这样做-

代码语言:javascript
复制
scientific='42.53e-12'
base=$(echo $scientific | cut -d 'e' -f1)
exp=$(($(echo $scientific | cut -d 'e' -f2)*1))
converted=$(bc -l <<< "$base*(10^$exp)")
>> .00000000004253000000
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/423453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档