C 和 Kotlin Math.exp 中的 E 值不同 [已关闭]

E value different in C and Kotlin Math.exp [closed]

提问人:Prasad Manjula 提问时间:10/1/2023 最后编辑:Prasad Manjula 更新时间:10/1/2023 访问量:82

问:


这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。

上个月关闭。

我正在将 C 代码转换为 Android 应用程序的 Java(kotlin)

在 C 中,我得到

printf("\\n  e value :%f \\n", 1.0e-4);
    e value :0.000100

在 Android Studio 中

System.out.println("e value "+ 1*Math.exp(-4));

Output
e value 0.01831563888873418

知道为什么吗?C语言代码是我找到的工作代码。我需要用 Kotlin 获得相同的结果

java android c kotlin 数学

评论

0赞 Fe2O3 10/1/2023
你为什么不阅读函数的 doco ?当你在那里时,检查类似的东西......exp()pow()
1赞 Sören 10/1/2023
你正在计算两个完全不同的东西,得到两个完全不同的结果
0赞 pmg 10/1/2023
对于 C 版本,您需要 ...切记printf("%f\n", pow(M_E, -4));#include <math.h>
0赞 Fe2O3 10/1/2023
@pmg“将 C 代码转换为 Java”......C版本大概是起点......
2赞 Mark Rotteveel 10/1/2023
1*Math.exp(-4)不是一回事(其实Java中的等价物也是)。1.0e-41.0e-4

答:

1赞 Eric Postpischil 10/1/2023 #1

在 C 中,表示 1.0•10−41.0e-4

在 Kotlin 中,表示 e−4,其中 e欧拉数,约为 2.718281828459。Math.exp(-4)

在 Kotlin 中,您可以使用 或 10−4。请注意,计算中使用的确切值与 10−4 略有不同,因为输入文本将转换为使用以 2 为基数的浮点格式。1e-41.0e-4