#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