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技能,这可能是一个很好的练习。