繁体   English   中英

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

[英]What do I need to add or rearrange so there is another decimal place?

我在 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插入终端时,我希望 output 为33.912513998258994 ,但我得到的实际 output 5899125 是33.91251399825899

this answer in a similar question所述,尝试使用numpy.float128 或者您可以 go 用于Decimal 数据类型,如接受的答案中所述。

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)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM