当前位置: 首页 > 面试题库 >

底数和小数位数

侯焱
2023-03-14
问题内容

我需要给浮点数加上一个特定的小数位数。

所以:

2.1235 with 2 decimals --> 2.12
2.1276 with 2 decimals --> 2.12  (round would give 2.13 wich is not what I need)

该函数np.round接受一个decimals参数,但现在看来,功能ceilfloor不接受小数位数的和始终与零个小数返回一个数字。

当然,我可以将数字乘以10^ndecimals,然后应用下限,最后除以10^ndecimals

new_value = np.floor(old_value * 10**ndecimals) / 10**ndecimals

但是我想知道是否有一个内置函数可以执行此操作而不必执行操作。


问题答案:

内置的Python或numpy的ceil / floor版本都不支持精度。

一个提示是重用循环而不是多用+除(应该快得多):

def my_ceil(a, precision=0):
    return np.round(a + 0.5 * 10**(-precision), precision)

def my_floor(a, precision=0):
    return np.round(a - 0.5 * 10**(-precision), precision)


 类似资料:
  • 问题内容: 我似乎在使用浮点数时失去了很多精度。 例如,我需要求解一个矩阵: 这是我用来从文本文件导入矩阵的代码: 我需要使用gauss-seidel进行求解,因此需要重新排列x,y和z的方程式: 这是我用来重新排列方程式的代码。是系数矩阵,是答案向量: 但是,我得到的答案并不精确到小数位。 例如,从上面重新排列第二个方程式后,我应该得到: 我得到的是: 这看起来似乎不是一个大问题,但是当您将数字

  • 这是我目前得到的 它告诉我小数点后有6位,因为它把“000”放在末尾。 我怎么解决这个? 尼克拉斯

  • 好的,我如何将小数点四舍五入到第二位而不是第一位?我必须创建一个菜单,让“顾客”点餐,我们必须包括小计、税费和小费。我的代码运行得很好,除非总数大约是3.8美元,而它应该是3.80美元。我怎样才能只用数学来解决这个问题呢。圆形()?我菜单上的钱代码是 非常感谢你!

  • 问题内容: 有没有一种简单的方法来确定PHP中的(n)整数/双精度值中的小数位数?(即,不使用) 问题答案:

  • 我对编程很陌生,在大学里我们学习了不同类型的数字(整数、短数、浮数、双数)。Float和double是浮点数。通常,它们由一个符号+/-、一个尾数和一个指数组成。每个部分占用一定数量的比特。一个浮动最多可以显示小数点后7位,最多可以双倍显示16位。其公式是: 23·log10(2)=23·(log(2)/log(10))≈23·0.3≈7(浮点数小数点后) 52·0.3≈16(双人小数点后) 我知

  • 我只是在练习lamdas java 8。我的问题如下 那么,我如何使这个lambdas表达式递归,以便它也能在第二种情况下工作呢?我可以用lambda表达式创建一个方法,并每次调用它,直到返回值<10,但我在想lambdas中是否有任何方法。 谢谢

  • 问题内容: 我在Python中有一个包含浮点数的变量(例如),我想确定数字的精度和小数位数(从Oracle的角度来看),因此123.45678应该给我(8,5),12.76应该给我(4,2)等 我最初是在考虑使用字符串表示形式(通过或),但是这些操作对于大量失败了(尽管我现在理解的是浮点表示法的局限性才是问题所在): 编辑: 好点在下面。我应该澄清。该数字已经是浮点数,正在通过cx_Oracle推

  • 问题内容: w3resources的挑战之一是将pi打印到“ n”个小数位。这是我的代码: 无论出于何种原因,它都会自动打印pi,而无需考虑任何输入。任何帮助将是巨大的:) 问题答案: 为什么不只使用: 更一般地说: 在您的原始方法中,我想您正在尝试使用多个数字作为循环的控制变量,这很容易理解,但在您的情况下不起作用,因为从未使用过用户输入的首字母。而是由字符串中的iteratee值代替。