【问题标题】:Getting the same double values in JavaScript from C#从 C# 在 JavaScript 中获取相同的双精度值
【发布时间】:2019-07-16 15:28:08
【问题描述】:

我希望 C# 打印出与 JS 打印出双值相同的双值。

对于 JavaScript, 我有

var x=value;
console.log(value);

对于 C# 我使用下面的代码来模仿 JavaScript

 string number = decimal.Parse(((double)value).ToString("G17"), System.Globalization.NumberStyles.Float).ToString();
  Console.WriteLine(number);

value=4.84143144246472090e+00

我明白了

JS:4.841431442464721
C#:4.8414314424647209

当我在 C# 中使用 .ToString("G16") 时,对于以前的值,我将在 JS 和 C# 中得到相等的值。尽管如此,对于

value=1.03622044471123109e-01

我明白了

JS:0.10362204447112311 
C#:0.1036220444711231

如何让 C# double 值对 JS 具有相同的打印输出?

仅供参考:

关于 JS Precision 的信息 http://www.w3schools.com/js/js_numbers.asp

C# 精度信息 https://msdn.microsoft.com/en-us/library/kfsatb94(v=vs.110).aspx

【问题讨论】:

    标签: javascript c#


    【解决方案1】:

    你可以使用.toFixed():

    console.log(value.toFixed(16));
    

    .toFixed() 函数返回一个字符串,以防不明显。

    【讨论】:

    • 谢谢,但我需要 C# 行为来模仿 JS,而不是反过来。
    猜你喜欢
    • 2013-12-28
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多