Python 数字的第二个根最多为四位数,无需对其进行分解

Python 数字的第二个根最多为四位数,无需对其进行分解,python,Python,我想在不渲染的情况下计算小数点后四位以内的数字的根,我使用下面的代码,但在不渲染输出的情况下无法打印输出 import math num = float(input('Enter a number: ')) num_sqrt = math.sqrt(num) print('The square root of %0.4f is %0.4f'%(num ,num_sqrt)) 例如,如果输入如下所示: 1 2 3 19 1.0000 1.4142 1.7320 4.3588 输出应如下所示:

我想在不渲染的情况下计算小数点后四位以内的数字的根,我使用下面的代码,但在不渲染输出的情况下无法打印输出

import math
num = float(input('Enter a number: '))
num_sqrt = math.sqrt(num)
print('The square root of %0.4f is %0.4f'%(num ,num_sqrt))
例如,如果输入如下所示:

1
2
3
19
1.0000
1.4142
1.7320
4.3588
输出应如下所示:

1
2
3
19
1.0000
1.4142
1.7320
4.3588

如果您只打印4个小数,而不希望数字四舍五入,则意味着您希望小数被截断,而常规格式设置方法不为此提供便利

如果您将您的号码预处理为:

def truncate_number(number, decimals):
    factor = 10.0 ** decimals
    return int(number * factor) / factor

num = float(input('Enter a number: '))
num_sqrt = num ** 0.5  # or math.sqrt(num)  if that's what you prefer.
print("The square root of {:.4f} is {:.4f}".format(num, truncate_number(num_sqrt, 4)))
基本上,它只是将数字与小数中的
10^number\u相乘,通过将其转换为
int
来截断小数,然后用相同的乘法因子对其进行除-实际上,这只留下您感兴趣的小数


您甚至不需要在预处理数字后使用格式化指令,因为Python不会打印尾随的零,所以简单的
print(“{}的平方根是{}”。format(num,truncate_number(num_sqrt,4))
就足够了。

如果您希望所有答案都有四位小数,您可以使用

import math
num = float(input('Enter a number: '))
num_sqrt = math.sqrt(num)
print('The square root of {} is {:0.4f}'.format(num, num_sqrt))
注意print语句中的{:0.4f}

  • :介绍格式规范

  • 0为数字类型启用符号感知零填充

  • .4将精度设置为4
  • f将数字显示为定点数字

有什么错误?这对我来说很好。。!对不起,我不知道你说的渲染是什么意思。分解是什么意思?所以你只想打印平方根?
print(“{.4f}.format(num_sqrt))
有什么问题吗?结果不应该四舍五入,因为您使用的是
sqrt()
!那么,对于十进制扩展为无穷大的
sqrt(2)
,预期的结果是什么?它的IEEE 754表示法,或者类似的东西?你也能写一个数学库吗?@BitaJafarzadeh-你是说
math.sqrt(num)
而不是
num**0.5
?当然,这两者是等价的。@BitaJafarzadeh写一个新的数学库是可能的,但为什么呢?我想如果你想提高Python技能,这可能是一个很好的练习。