.NET 中精確的雙精確度浮點數到字串轉換,避免科學計數法
在 .NET 中將雙精度浮點數轉換為浮點型字串表示可能會帶來挑戰,尤其是在尋求有效抑制大數和小數科學計數法的解決方案時。
一種方法是使用自訂格式字串,指定小數點後的所需精度。為了準確表示所有可能的雙精度浮點數值,需要大量的數字。滿足此要求的通用解決方案是:
<code class="language-csharp">doubleValue.ToString("0." + new string('#', 339))</code>
此格式字串包含 339 個井號字元 ('#'),表示可以由指數向右移動的最大非零小數位數 (15)(324 位元)。
需要注意的是,由於 ToString() 的潛在顯示舍入,此方法提供的是精度而不是無損轉換。對於無損往返轉換,請考慮 @Loathing 提供的替代方案。
為了提高可用性和效能,格式字串可以儲存為常數:
<code class="language-csharp">public static class FormatStrings { public const string DoubleFixedPoint = "0.###################################################################################################################################################################################################################################################################################################################################################"; }</code>
透過使用此技術,可以輕鬆地將雙精度浮點數轉換為不含科學計數法的字串表示形式,確保在應用程式中精確顯示大數和小數。
以上是.NET 中如何在不使用科學記數法的情況下將雙精度數精確轉換為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!