gpt4 book ai didi

java - 将 python 转换为 java float vs double

转载 作者:行者123 更新时间:2023-11-30 07:54:10 24 4
gpt4 key购买 nike

我需要转换 following python code到 Java 并记住过去必须小心处理十进制值,否则结果将不准确。我的问题是,如果 double 比 float 更准确,我可以对所有非整数值使用 double 吗?

这是我转换的开始:

Python代码

def degrees(rads):
return (rads/pi)*180


def radians(degrees):
return (degrees/180 * pi)


def fnday(y, m, d, h):
a = 367 * y - 7 * (y + (m + 9) // 12) // 4 + 275 * m // 9
a += d - 730530 + h / 24
return a

Java 转换

public double degress(double rads)
{
return (rads/PI)*180;
}

public double radians(double degrees)
{
return (degrees/180 * PI);
}

public double fnday(int y, int m, int d, int h)
{
double a = 367 * y - 7 * (y + (m + 9) / 12) / 4 + 275 * m / 9;
a += d - 730530 + h / 24;
return a;
}

我知道这可能是一个简单的答案,但我需要知道应用程序的月亮和太阳的位置,并且不想依赖 API 来获取此数据。我只是想输入纬度和经度并获取太阳和月亮升起和落下的时间。

最佳答案

对每个变量使用double 就足够了;但是,您遇到了整数除法导致的问题:

double a = 367 * y - 7 * (y + (m + 9) / 12) / 4 + 275 * m / 9;

如果我是你,我会将 ymdh 全部更改为是 double,所以除法时保留小数位:

public double fnday(double y, double m, double d, double h) {
double a = 367 * y - 7 * (y + (m + 9) / 12) / 4 + 275 * m / 9;

a += d - 730530 + h / 24;

return a;
}

关于java - 将 python 转换为 java float vs double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44251968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com