从 C# 获取相同的 JavaScript 双精度值



我希望 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# 双精度值具有相同的 JS 打印输出?

仅供参考:

有关 JS 精度的信息http://www.w3schools.com/js/js_numbers.asp

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

您可以使用

.toFixed()

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

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

最新更新