Как избежать округления чисел в функции - VB

Узнай цену своей работы

Формулировка задачи:

Необходимо вводить последовательность действительных чисел. Из каждого числа этой последовательности необходимо "отбрасывает" последнюю цифру в целой части числа. Проблема в том, что в функции число округляется. Помогите разобраться почему

Решение задачи: «Как избежать округления чисел в функции»

textual
Листинг программы
Option Explicit
Sub v1()
Dim a As Double, s As String, i As Integer
Sheets("Лист1").Select
Range("a1:c20").Clear
For i = 1 To 5
  a = Val(InputBox("Введите a(" + Trim(Str(i)) + ")"))
  s = funs(a)
  Cells(i, 1) = a
  Cells(i, 3) = s
Next i
End Sub
 
Function funs(ByVal a As Double) As Double
Dim s As String, stra As String, stra2, i As Integer, count, TestString As String, subString As String, LeftString, RightString
stra = CStr(a)
count = InStr(stra, ",")
If count = 0 Then
    If Len(stra) < 2 Then
        TestString = 0
    Else
         count = (Len(stra) - 1)
         TestString = Left(stra, count)
    End If
Else
LeftString = Left(stra, (count))
RightString = Right(stra, (Len(stra) - count))
 If Len(LeftString) < 3 Then
        TestString = "0" + "," + RightString
    Else
        count = (Len(LeftString) - 2)
         LeftString = Left(LeftString, count)
          MsgBox (LeftString)
          subString = ","
         'TestString = LeftString + "," + RightString
         TestString = LeftString & subString & RightString
    End If
 
End If
 
funs = TestString
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы