【问题标题】:Why doesn't bc show the scale for the result of this expression?为什么 bc 不显示此表达式结果的比例?
【发布时间】:2014-08-19 22:23:29
【问题描述】:

我认为这个表达式应该返回0.000,而不是0

echo "scale = 3 ; 0 / 2" | bc

使用echo "scale = 3 ; scale(0 / 2)" | bc 输出3,所以很明显比例是适用,但它没有正确显示输出。

发生了什么事?

【问题讨论】:

    标签: bash unix posix bc


    【解决方案1】:

    当用 0 除以某物时,不会考虑小数位数,因为它肯定永远不会有任何小数值。

    您是对的,您的比例适用,例如尝试使用 echo "scale = 3; 1/2" | bc 输出为 .500

    此外,如果您仅使用比例来避免截断,则可以使用 -l 选项,该选项将允许 20 位小数。

    这也证明了当用 0 除以某物时,小数点在你输入时会被忽略:

    echo "0/2" | bc - l
    

    输出将为 0

    echo "1/2" | bc - l
    

    输出将是 .50000000000000000000

    我希望我说得更清楚一点。

    【讨论】:

    • 虽然我希望格式一致,但这绝对是有道理的。
    猜你喜欢
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多