Tro*_*ald 1 javascript c# math arithmetic-expressions operator-precedence
以下问题在C#和Javascript之间返回不同的结果:
JS结果= 0.6987590698013918
C#Result = 0.697932453616849
使用Javascript
mu =0.6962788561718957;
e1= 0.0016792203861749964;
phi1 = mu + e1 * (3 / 2 - 27 * e1 * e1 / 32) * Math.sin(2 * mu) + e1 * e1 * (21 / 16 - 55 * e1 * e1 / 32) * Math.sin(4 * mu);
Run Code Online (Sandbox Code Playgroud)
C#
double mu = 0.6962788561718957;
double e1 = 0.0016792203861749964;
double phi1 = mu + e1 * (3 / 2 - 27 * e1 * e1 / 32) * Math.Sin(2 * mu) + e1 * e1 * (21 / 16 - 55 * e1 * e1 / 32) * Math.Sin(4 * mu);
Run Code Online (Sandbox Code Playgroud)
Javascript和C#共享相同的双重标准,因此我不认为结果因精度而有所不同,特别是考虑到更改从第1000位开始.是否存在我缺少的算术顺序,这两种语言之间存在差异?
要获得与JS相同的结果,请使用至少一个浮点数进行划分.
double phi1 = mu + e1 * (3.0 / 2 - 27 * e1 * e1 / 32) * Math.Sin(2 * mu) + e1 * e1 * (21.0 / 16 - 55 * e1 * e1 / 32) * Math.Sin(4 * mu);
Run Code Online (Sandbox Code Playgroud)
3.0/2和21.0/16
结果:0.698759069801392
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |