bash - Bash 数学奇数(浮点除法)
问题描述
所以我在这里遇到了 bash / bc 数学问题。
在通过 rclone 将其移动到我的 gdrive 以进行备份后,我正在尝试打印备份的文件大小。所以我通过带有 awk print $1 的 rclone ls 语句获得文件大小,效果很好。
在我的具体示例中,我得到的值为 1993211(字节)。
因此,在我的打印代码中,我尝试将其除以 1048576 以将其转换为 mb。这应该给我 1.9 mb。
然而,
$ expr 1993211 / 1048576 | bc -l
印刷1
我尝试了此处列出的各种其他数学选项(包括通过 python / node),我总是得到 1 或 1.0。这怎么可能?
计算应该是1993211 / 1048576 = 1.90087413788
知道这里发生了什么吗?
解决方案
那是因为它进行整数除法。做浮点除法,你可以运行:
bc -l <<< '1993211 / 1048576'
返回:1.90087413787841796875
或者您可以使用比例设置小数位数:
bc -l <<< 'scale=5; 1993211 / 1048576'
返回:1.90087
推荐阅读
- javascript - 如何从下拉列表中获取所有选项
- listview - Flutter 水平可滚动列表视图弹出效果
- python - Python sqlite3更新语句未更新
- outlook-addin - 用户开始撰写新电子邮件后如何显示一些消息
- reactjs - 无法在名称为“lenghts.byDay”的 TextField 中键入任何字符?
- xml - XQuery 不能按元素名称选择子元素,可以按索引选择
- amazon-lightsail - AWS LightSail 更新启动脚本
- mysql - 错误 #1265 - 无法在默认的“无”字段中插入空值
- ios - 最后一个单元格上的 UITableView beginUpdate 和 endUpdate 重新加载 tableview
- java - 将 (YAML) 文件转换为任何 MAP 实现