Ich habe eine Funktion, die eine BOL-Nummer berechnet und nur die ersten 10 Ziffern nimmt.Woher kommt die Dezimalstelle in dieser Berechnung?
Hier ist der Code.
Public Function GENERATEBOLNUMBER(iYearSuffix As Integer, _
sFromZipcode As String, _
sToZipCode As String, _
iWeight As Integer, _
iShowID As Integer) As String
Application.ScreenUpdating = False
GENERATEBOLNUMBER = VBA.Left(7 & _
WorksheetFunction.RoundUp(VBA.Right(sFromZipcode, 5) _
* VBA.Right(sToZipCode, 5) * iWeight * (iShowID + 1234), 0), 10)
Application.ScreenUpdating = True
End Function
Und hier sind die Werte, die ich es übergeben. 7 für den iYearSuffix, 78224 für sFromZipcode und 78224 für sToZipCode, 410 als iWeight und 1 als iShowID. All dies berechnet sich zu 3098352701017600, so dass die endgültige Zeichenfolge 7309835270 sein sollte, die die 7 als erste Ziffer und die folgenden 9 Ziffern enthält.
Woher kommt die Dezimalzahl? Die Antwort lautet: 73.0983527.
Haben Sie die Formatierung überprüfen auf jede Zelle, die in diesen Code gezogen wird? Alles, was ich denken kann, ist, dass Sie Werte in weniger als 1, 7 Bestellungen weniger als beabsichtigt ziehen. – Cyril
Wenn Zahlen in Excel zu groß werden, wechselt es in wissenschaftliche Notation, also ist es wahrscheinlich 3.0983527E + 10 oder so ähnlich. –
Wie auch immer, um es von wissenschaftlichen konvertieren? Wenn ich die gleichen Formeln wie eine Excel-Formel verwende, wird sie korrekt berechnet, bis ich meine benutzerdefinierte Funktion benutze, wird sie es falsch machen. –