«число десятичных знаков» на самом деле не является свойством числа с плавающей запятой из-за того, как они хранятся и обрабатываются внутри страны. Вы можете получить столько знаков после запятой, сколько хотите, из числа с плавающей запятой. Вопрос в том, насколько точно вы хотите. При преобразовании числа с плавающей точкой в строку часть процесса принимает решение о точности.
Попробуйте, например:
1.1 - int (1.1)
И вы увидите, что ответ:
0.10000000000000009
Итак, для этого случая число десятичных знаков равно 17. Это номер, который вы хотите?
Наверное, нет.
Вы можете, однако, округлить число до определенного числа десятичных знаков с помощью «round»:
round (3.1415 - int (3.1415), 3)
Для этого случая число десятичных дробей разрезается на 3.
t получить «количество десятичных знаков от поплавка», но вы можете определить точность и сколько хотите. Преобразование float в строку является одним из способов принятия такого решения.
$*
, без кавычек, расширяется до двух слов. Вам нужно процитировать его так, чтобы someApp
получал один аргумент.
someApp "$*"
Возможно, вы захотите использовать $@
вместо этого, чтобы someApp
получил два аргумента, если бы вы были вызовите b.sh
как
b.sh 'My first' 'My second'
С someApp "$*"
, someApp
получит один аргумент My first My second
. С помощью someApp "$@"
, someApp
получит два аргумента: My first
и My second
.
$@
и$*
работают одинаково. – chepner 21 June 2014 в 15:19