【问题标题】:How to get a decimal number when dividing in bc?在 bc 中除法时如何获得十进制数?
【发布时间】:2012-05-06 15:20:09
【问题描述】:

我需要 'bc' 来除一个数字,并且不仅给我地板,还给我余数。例如,如果我做 '5/2','bc' 会给我 '2'。我真的想要像'2.5'这样的东西

也许这根本不可能?

【问题讨论】:

    标签: unix bc


    【解决方案1】:
    scale = 20
    

    它设置小数位数。

    $ bc
    bc 1.06
    Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    355/113
    3
    scale=20
    355/113
    3.14159292035398230088
    quit
    $
    

    【讨论】:

    • 另请注意,您可以避免在每次使用 bc 时手动设置 scale,方法是使用 -l 选项调用它(它会自动将 scale 设置为 20,并且还定义了几个数学函数)。
    • 你在 1 分钟内回答得很好。你真是个半神。
    • @EhevuTov 纯属运气;在您发布问题后不久,我就遇到了问题,并且知道答案。
    • @jwodder:谢谢!我知道-l 选项(我永远认为应该是-m 用于'数学库',但这是我的问题);我没有注意到比例的自动设置。如果你调用 bc -l,你可以写:4*a(1) 并得到 3.14159265358979323844,比 355/113 更接近 π(虽然这对 6 dp 来说很好,这对于许多用途来说已经足够了)。
    • 如果你很容易被逗乐(或在“社交距离”时感到无聊),那么355/113 在小数扩展中确实有一个重复的数字模式,但该模式的长度为 112 位,从小数点后的141。设置scale = 350(或355?),你会发现重复模式是1415929203539823008849557522123893805309734513274336283185840707964601769911504424778761061946902654867256637168。 (有没有一个标准的 Unix 实用程序可以在不编程的情况下找到重复项?我不知道。)
    猜你喜欢
    • 2018-12-07
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2018-02-26
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    相关资源
    最近更新 更多