К сожалению функциональная страница Scilab format
не очень обновлена.Полный синтаксис:
[ResultMode, ResultWidth] = format(InputMode, InputWidth)
, где InputMode
- строка с принятыми значениями "v"
для «адаптивного форматирования» и "e"
для
экспоненциальная / инженерная./ научное обозначение (например, -1.438E + 02)
InputWidth
должно быть положительным целым числом от 1-25
, указывающим количество цифр.Кстати, оба входа не являются обязательными.ResultMode
- это целое число 1
для адаптивного и 0
для экспоненциального форматирования.ResultWidth
также является положительным целым числом.
Проблема в том, что установка InputMode
на "v"
не гарантирует нормальную запись, если вы не указали достаточно InputWidth
.В этом случае ваш результат состоит из 19 цифр:
2,432,902,008,176,640,000
. По какой-то причине вам нужно указать InputWidth
из 21 цифры:
format("v", 21);
чтобы получить то, что вы ищете:
--> a = factorial(20)
a =
2432902008176640000.