Десятичный синтаксический анализ - почему он работает так, как он работает.
Это продолжение другого вопроса, похожего, но не того же самого
why-I-need-to-parse-if-object-value-is-decimal
Принимая a vb.net приложение, неявное преобразование, установленное на ошибку в компиляторе.
Так что - например
Дим MyDecimal как десятичное=десятичное.синтаксический анализ(0.001.метод toString)
MyDecimal=MyDecimal*0.45355
Ошибка: неявное преобразование из двойного в десятичное.
Хорошо. Так что тогда я должен сделать что-то странное, например:
MyDecimal=MyDecimal*десятичный.синтаксический анализ(0.45355.метод toString)
Почему это должно быть сделано именно так - или есть лучший способ справиться с этим? Похоже, что это пустая трата цикла процессора, чтобы преобразовать его в строку, а затем разобрать его как десятичное число. Почему система просто понять (мне), что 0.45355 является десятичной, потому что это и (II) почему не просто десятичное.синтаксический анализ(0.45355) в любом случае работать, если он не поймет, что 0.45355-десятичное.
Даже если число имеет меньше десятичных знаков, то есть 0,4, оно все равно стонет, что его удвоение.
Я просто пытаюсь понять логику, лежащую в основе того, почему компилятор так думает? Спасибо!
Что я уже пробовал:
Наверное, я должен заполнить это только для того, чтобы запрос был принят, но попытка использовать другую десятичную точку, похоже, не имеет никакого эффекта. если double "является стандартом" для decimal, то зачем вообще иметь decimal?
0x01AA
Как насчет этого:Dim dec As Decimal
dec = 2.375D
Member 12561559
Спасибо!