簡體   English   中英

獲取小數位以獲得雙精度值

[英]Get decimal places for a double value

我正在使用VB.NET:

我正在尋找一個函數,該函數獲取雙精度值的小數位數。

我已經有一個函數針對“ 0.01”之類的值執行此操作,但不針對“ 1E-6”之類的值執行此操作,但這就是我需要的。

在StackOverflow上有一個類似的(已回答)問題,但不適用於科學計數法: VB.NET中數字的小數位

所需功能:

Input: 0.001 / Output: 3
Input: 0.000001 (.ToString() representation: "1E-6") / Output: 5

有誰有優雅的方法(VB.NET/C#)?

我認為這個功能應該做到這一點:

    Public Function GetDecimalPlaces(ByVal Value As Double, ByVal Culture As System.Globalization.CultureInfo) As Integer
        Dim val As String = String.Empty
        Dim valSplitted As String() = Nothing

        Try
            val = Value.ToString("0.######################")

            valSplitted = val.Split(CChar(Culture.NumberFormat.NumberDecimalSeparator))
            If (valSplitted.Length = 1) Then Return 0

            Return valSplitted(1).Length
        Catch ex As Exception
            Throw ex
        End Try
    End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM