在Bash脚本中将科学计数法数值转换为整数的方法
在Bash脚本内将科学计数法转换为整数(无需外部工具?)
已知:
#!/bin/bash # 定义科学计数法表示的数值 my_number="2.2e+6"
我希望在Bash脚本中将这个科学计数法格式的数值转换为整数。目前我通过调用Python实现了该功能,具体代码如下:
# 使用Python将科学计数法转换为整数 my_integer=$(python -c "print(int($my_number))") echo "原始数值: $my_number" echo "转换后的整数: $my_integer" # 执行输出: # 原始数值: 2.2e+6 # 转换后的整数: 2200000
请问是否存在无需依赖外部工具,直接在Bash脚本内部实现的解决方案?
环境信息
- Bash版本:
$ echo "$BASH_VERSION" 5.1.16(1)-release
- 操作系统:
$ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.3 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.3 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy
更新
根据采纳的答案,还可以通过awk实现转换并将结果存入变量my_integer:
my_integer=$(awk -v x="$my_number" 'BEGIN {printf("%d\n",x)}') echo "my_integer: $my_integer" # 输出:2200000
内容的提问来源于stack exchange,提问作者farid
相关产品推荐
相关产品推荐

