[英]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.