Свод всех вычислений в Excel vba

#excel #vba

#excel #vba

Вопрос:

Я пытаюсь создать код на VBA со многими вычислениями с плавающей запятой. Конечный результат неточен и занижен. Хотя достичь точности может быть непросто, я хотел бы, по крайней мере, переоценить все результаты вычислений, поскольку я работаю над проблемой проектирования гражданской балки, а переоценка безопаснее. Я хотел бы знать, есть ли какой-либо способ округлить все вычисления в VBA по умолчанию для этого конкретного кода. Что-то вроде c ios base или изменение среды Mathematica (я не помню точной терминологии).

Комментарии:

1. вы говорите о округлении в сторону увеличения double типа данных?

2. что именно вы хотите сделать со своим кодом, когда говорите «округление в большую сторону»? Пожалуйста, поясните это несколькими примерами. При всех недостатках VBA, по своей природе являющегося некомпилируемым языком, его вычисления с плавающей запятой точно соответствуют степени точности его переменных, ИМХО

3. Вы реализуете какой-то метод конечных разностей? Потому что в этом случае вам нужно быть уверенным, что схема, которую вы использовали в, безусловно стабильна или, по крайней мере, стабильна в рамках вашей проблемы

Ответ №1:

Вы бы использовали тот же подход, что и в формулах рабочего листа:

 Sub RoundTest()
    Dim wf As WorksheetFunction, approximate As Double, tVale As Double
    Set wf = Application.WorksheetFunction
    tVale = wf.Pi()
    approximate = wf.RoundUp(tVale, 3#)
    MsgBox tVale amp; vbCrLf amp; approximate
End Sub