Умножение двух чисел, а затем добавление еще одного приводит к "0" в качестве ответа
Я пытаюсь умножить 2 числа вместе, а затем добавить третье число к этому результату.
s1 ниже-десятичное число до 4 знаков после запятой.
t1 ниже-десятичное число (деньги)
t7 ниже десятичное число до 3 знаков после запятой
Преобразование переменных в числа, например, мой расчет должен выглядеть следующим образом:
(100.012 * 0.1700) + $168.62 следует суммировать и тем самым сделать tbTrkGalsPurch1: $185.62
Очевидно, я нарушаю правило, с которым не знаком. Я не получаю никаких сообщений об ошибках ни в Debug, ни в EXE-файле программы. Я не получаю никаких сообщений об ошибках в своем предложении TRY.
Private Sub calc() Dim a, s1, t1, t7 As Decimal s1 = CDec(IIf(tbStateTax1.Text.Trim = "", 0D, tbStateTax1.Text.Trim)) t1 = CDec(IIf(tbPumpCost1.Text.Trim = "", 0D, tbPumpCost1.Text.Trim)) t7 = CDec(IIf(tbTrkGalsPurch1.Text.Trim = "", 0D, tbTrkGalsPurch1.Text.Trim)) Try If t7 > 0 AndAlso cbTermPurch1.Text.ToString = "No" Then a = (t7 * s1) + t1 tbTrkFuelPurch1.Text = a.ToString("C2") Else tbTrkFuelPurch1.Text = t1.ToString("C2") End If Catch ex As Exception 'If a calculation error occurs, show Error message box Dim frm As New MeMsgCalcError(ex, "'Fuel plus Tax Stop 1' Calculation Error." & vbCrLf & "Lines 479-490") frm.Show() End Try End Sub
Во время отладки все мои значения (t7, s1, t1) показывают правильные значения при наведении курсора мыши на переменную, но значение " a " равно 0, что наводит меня на мысль, что что-то не так либо в форматировании, либо в том, как я пытаюсь выполнить вычисление. Я подозреваю, что проблема в форматировании.
Что я уже пробовал:
Я попытался заключить в скобки все уравнение: a = ((t7 * s1) + t1)
Я попытался сделать расчет умножения без сложения: a = (t7 * s1)
Я попытался удалить: AndAlso cbTermPurch1. Text.ToString = " нет " часть уравнения.
Я попытался изменить форматирование там, где в настоящее время у меня есть:
s1 = CDec(IIf(tbStateTax1. Text.Отделка = "", 0d, в tbStateTax1.Текст.Отделка))
Я перешел на:
s1 = CDec(IIf(tbStateTax1. Text.Отделка = "", 4Д, tbStateTax1.Текст.Отделка))
[no name]
"tbTrkGalsPurch1: $185,62" - - - - " tbTrkFuelPurch1.Text = a. ToString("C2")"
то, что вы говорите, что хотите, и то, что вы на самом деле делаете, - это две разные вещи. Я запустил ваш код, используя ваши номера, и получил a = $ 185,62, как и ожидалось.
K3JAE
Хорошо, тогда что или где я должен искать, чтобы найти свою проблему, если расчет формулы верен? Какие-нибудь намеки?
Ralf Meier
Посмотрите на мое решение ...