我希望 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()
函数返回一个字符串,以防它不明显。