Я новичок в Visual Basic, и я делаю некоторые вычисления с помощью Decimals, однако Visual Studio бросает эту ошибку при каждом вычислении: «Option Strict On запрещает неявные преобразования из« Double »в ' Десятичная дробь'". Я понимаю смысл этой ошибки. Мне просто интересно, почему в первую очередь ответ будет Двойным. Вот код (линия производства ошибки является тот, который читает FWT = 0,1 * (налогооблагаемый - 116)):Visual Basic Decimal Calculations Результат в Double
Private Function GetFWT(ByVal allowances As Integer, ByVal status As String, ByVal gross As Decimal) As Decimal
Dim FWT As Decimal
Dim taxable As Decimal
taxable = gross - CDec(allowances * 70.19)
If status = "S" Then
If taxable < 116 Then
FWT = 0
ElseIf taxable >= 116 And taxable < 200 Then
FWT = 0.1 * (taxable - 116)
End If
End If
End Function
Я вырезал другие заявления ELSEIF, как все они похожи и довольно немного. Visual Studio рекомендует использовать CDec() для устранения ошибки, поэтому я буду реализовывать это для ее решения (если кто-либо не знает лучшего решения), но я просто пытаюсь понять, почему вычисление с десятичными переменными и буквальными номерами даст Дважды.
Так для '= 0,1 * (налогооблагаемая - 116)', что тип данных вы думаете, что в буквальном '0.1' это? – RBarryYoung
Основываясь на ответе ниже, я понимаю, что букваль интерпретируется как «Двойной», поэтому теперь я вижу, откуда приходит Double. Спасибо! –