bc игнорирует параметр масштаба

Я не могу понять, почему bc tool иногда игнорирует параметр масштаба.

Вот пример:

> echo 'scale=2; 2.777 - 1.4744' | bc
1.3026

Ожидаемый результат:

1.30

Дополнительная информация:

> bash --version
GNU bash, version 2.05b.0(1)-release (x86_64-suse-linux)
Copyright (C) 2002 Free Software Foundation, Inc.
> bc --version
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.

2 ответа

Решение

Как указал Карл, если вы проверите справочную страницу, вы можете найти эту строку. речь идет о объяснениях выражения. вычитание не будет читать scale переменная. Если вы хотите получить ожидаемый результат (1,30), вы можете:

kent$  echo 'scale=2; (2.777 - 1.4744)/1' | bc 
1.30

/ операция будет читать scale переменная.

От bc(1) справочная страница:

Если специально не указано, масштаб результата - это максимальный масштаб задействованных выражений.

1.4744 имеет масштаб 4так вот что происходит с твоим выражением.

Другие вопросы по тегам