Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我需要添加或重新排列什么,以便有另一个小数位?_Python_Python 3.x - Fatal编程技术网

Python 我需要添加或重新排列什么,以便有另一个小数位?

Python 我需要添加或重新排列什么,以便有另一个小数位?,python,python-3.x,Python,Python 3.x,我在CS的第一年,我们使用Python3。我设法正确编码并将其提交到gradescope中,但它不正确,因为缺少一个小数点(末尾的4)。我的教授告诉我重新排列方程式,所以我试着交换数字,但仍然没有给出我想要的答案 我把相乘的数字换成了它旁边的数字,但它只会把数字丢得更多 import math import stdio import sys theta = float(sys.argv[1]) n1 = float(sys.argv[2]) n2 = float(sys.argv[3]) t

我在CS的第一年,我们使用Python3。我设法正确编码并将其提交到gradescope中,但它不正确,因为缺少一个小数点(末尾的4)。我的教授告诉我重新排列方程式,所以我试着交换数字,但仍然没有给出我想要的答案

我把相乘的数字换成了它旁边的数字,但它只会把数字丢得更多

import math
import stdio
import sys

theta = float(sys.argv[1])
n1 = float(sys.argv[2])
n2 = float(sys.argv[3])

theta1_rad = theta1*math.pi/180
theta2_rad = math.asin(n1*math.sin(theta1_rad)/n2)
theta2 = theta2_rad*180/math.pi

print(theta2)
当我将
$python3 snell.py 58 1 1.52
插入终端时,我期望得到
33.912513998258994
的输出,但实际得到的输出是
33.91251399825899

,如回答类似问题时所述,请尝试使用numpy.float128。或者,您也可以按照已接受答案中的说明进行选择。

如在类似问题的答案中所述,尝试使用numpy.float128。或者你也可以按照公认的答案去做

import math
import sys

theta = float(sys.argv[1])
n1 = float(sys.argv[2])
n2 = float(sys.argv[3])

theta1_rad = round(theta*math.pi/180,15)
theta2_rad = round(math.asin(n1*math.sin(theta1_rad)/n2),15)
theta2 = round(theta2_rad*180/math.pi,15)

print(theta2)
试试这个,希望它能按照你的期望工作


试试这个,希望它能按照你的期望工作

如果你的评分系统期望的是浮点计算结果的精确匹配,那它就太糟糕了。(有一些有限的、特定的环境,有时可能是合理的,但一年级的CS学生不会在这些环境中工作。)我使用了
print(f'{theta:.16f}')
。我得到了
…89871
只是好奇你使用的是哪种操作系统?@PranavVoid我正在使用macbook上的oracle虚拟机!如果你的评分系统期望的是浮点计算结果的精确匹配,那它就太糟糕了。(有一些有限的、特定的环境,有时可能是合理的,但一年级的CS学生不会在这些环境中工作。)我使用了
print(f'{theta:.16f}')
。我得到了
…89871
只是好奇你使用的是哪种操作系统?@PranavVoid我正在使用macbook上的oracle虚拟机!我不是OP,但即使在使用numpy后我仍然得到
…89871
。我不是OP,但即使在使用numpy后我仍然得到
…89871
。这是一个延迟响应,但它立即解决了我的问题。非常感谢你!很高兴帮助你解决你的问题。你能把它标记为正确答案吗?这是一个迟来的回答,但它马上解决了我的问题。非常感谢你!很高兴帮助你解决你的问题。你能证明这是正确答案吗?