无法在 Kotlin 中正确进行计算 [已关闭]

Can't do e Calculations in Kotlin Correctly [closed]

提问人:Prasad Manjula 提问时间:10/3/2023 最后编辑:Steve FriedlPrasad Manjula 更新时间:10/3/2023 访问量:88

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

上个月关闭。

我正在尝试在 Kotlin 中计算这个,但没有给出预期的结果

enter image description here

下面是 C 语言的代码,它给出了预期的结果

double bsix=1.1890129477526807;
int main() {
    // Write C code here
    printf("value = %f \n",3.08e-4*bsix*bsix);
}

value = 0.000435 

以下是 Kotlin 中的代码,它没有给出预期的结果

val bsix=1.1890129477526807
fun main() {
     println("value = "+ 3.08e-4*bsix*bsix);
}
value = 4.354355512964439E-4

我想做的是这个

3.08e^(-4*bsix*bsix)

Kotlin 是这样的计算吗?

3.08e^(-4)   *bsix*bsix

谢谢

java android c kotlin 数学

评论

4赞 Louis Wasserman 10/3/2023
那些(非常接近)相同的数字,只是显示方式不同?
0赞 Shawn 10/3/2023
阅读 kotlin 可用于将浮点数转换为字符串的函数,并使用提供所需格式的函数。
1赞 Eric Postpischil 10/3/2023
回复“我想做的是这个”:这没有意义; 不是 C 或 Java 源代码中定义的文字。您想将 3.08e-4 计算为 (bsix*bsix) 的幂吗?3.08e^(-4*bsix*bsix)3.08e
0赞 user3386109 10/3/2023
请注意,in 不是欧拉数。因此,如果您尝试计算的是 ,那么您需要在 C 中使用该函数。e3.08e-43.08 * 2.71828 ** (-4 * bsix * bsix)exp
1赞 Tenfour04 10/3/2023
我不明白你的 C 代码如何给你带来预期的结果。方程图像中的是欧拉数或其他常数,但您在 C 代码中使用了科学记数法的 E。但是您的 C 和 Kotlin 结果是相同的,只是格式不同。e

答:

2赞 Eric Postpischil 10/3/2023 #1

给定 b 6 存储在 中,3.08•e−4•b 6b6 可以用 计算。结果约为 0.010779839926733713。bsix3.08*Math.exp(-4*bsix*bsix)

问题中显示的 C 源代码不计算此表达式的值。它计算 3.08•10−4•b 6•b6