1. VisualBasic / Говнокод #605

    −281.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    Public Function GetFormatedValue(ByVal columnName As String, ByVal value As Object) As String
    	Dim result As String = value.ToString()
    	Dim vint As Integer
    	If (TypeOf value Is Decimal) Then
    		vint = CType(CType(value, Decimal), Integer)
    	ElseIf (TypeOf value Is Integer) Then
    		vint = CType(value, Integer)
    	Else
    		vint = CType(Decimal.Parse(value.ToString(), System.Globalization.CultureInfo.InvariantCulture), Integer)
    	End If
    
    	Dim stringValue = ConvertStringToInt(value)
    
    	Select Case foundedColumn.Format
    		Case "3"
    			result = String.Format("${0}M", GetSplitValue(CType(CType(stringValue, Integer) / 1000000, Integer)))
    		Case "2"
    			result = String.Format("${0}K", GetSplitValue(CType(CType(stringValue, Integer) / 1000, Integer)))
    		Case "1"
    			result = String.Format("${0}", GetSplitValue(vint))
    	End Select
    	Return result
    End Function
    
    Private Function ConvertStringToInt(ByVal value As Object) As String
    	Return CType(value, String).Replace(",", String.Empty).Replace(".", String.Empty).Replace(" ", String.Empty)
    End Function

    Сначало падал exception на 9 строчке, т.к. не была указана культура, вообще.
    После того как указали культуру, все, через кейс на 20 строчке, проходило успешно
    Далее, когда изменился формат, для правильной конверсии закодили функцию ConvertStringToInt (line 25)

    Запостил: guest, 24 Февраля 2009

    Комментарии (1) RSS

    • Кодить задом на перед, и по возможности с изобретением своего велосипеда (строки 14-21)
      Ответить

    Добавить комментарий