избегать округления - PullRequest
       11

избегать округления

0 голосов
/ 20 апреля 2011

как избежать округления чисел

Код ниже

Dim acc = 0
Dim i 
Dim x() = {699.68, 632.70}
  For i = LBound(x) To UBound(x)
    acc = acc + x(i)
  Next

  console.writeline(acc)

возврат: 1333

спасибо inchikka

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Илья Коган прав, проблема в том, что вы не определяли свои переменные явно.

Единственное, что нужно добавить, это то, что в VB действительно хорошая идея использовать Option Explicit оператор, который требует, чтобы переменные были определены.Более того, вы можете включить параметр, который автоматически добавляет его в ваш код в каждом новом проекте.Я не уверен, какую версию VB вы используете, но вот ссылка на статью MSDN, объясняющую, как включить эту опцию (в зависимости от используемой версии VB, нажмите «Другие версии» вверху страницы).и выберите ваш, поскольку инструкции различаются):

Параметр MSDN Явный

При вероятности отключения VB6 последовательность немного отличается (и, очевидно, неMSDN задокументирован).Перейдите: Инструменты -> Параметры и установите флажок Требовать объявление переменной.

1 голос
/ 20 апреля 2011

acc неявно определяется как целое число, потому что вы инициализируете его 0, которое является целым числом.

Вы должны явно определить acc как число с плавающей запятой. Я не уверен в синтаксисе VB, но думаю, что-то вроде:

Dim acc as Double

или

Dim acc = 0.0
...