如何在vb.net中写一个小数而不将小数点后12位四舍五入?

How to write in vb.net a decimal number without rounding the 12 digits after the decimal point?

我尝试把5991除以2987的结果写在vb.net中,小数点后12位严格等于2.005691329092。小数部分 (0.05691329092) 也以科学记数法表示为 17/2987。我的测试总是将我带到 2.005691329093 舍入!

2 17/2987

实际值是正确的,问题是如何格式化值以按预期显示它。
没有内置方法,但您可以将值乘以小数点后所需的位数并截断它。

Dim value As Double = 5991.0 / 2987.0
value = Math.Truncate(value * Math.Pow(10, 12)) / Math.Pow(10, 12)

Console.WriteLine($"Result: {value:F12}")