-
Notifications
You must be signed in to change notification settings - Fork 1.9k
SC2017
Joachim Ansorg edited this page Nov 15, 2021
·
5 revisions
percent=$((count/total*100))percent=$((count*100/total))If integer division is performed before multiplication, the intermediate result will be truncated causing a loss of precision.
In this case, if count=1 and total=2, then the problematic code results in percent=0, while the correct code gives percent=50.
If you want and expect truncation you can ignore this message.
ShellCheck doesn't warn when b and c are identical expressions, e.g. a/10*10, under the assumption that the intent is to rounded to the nearest 10 rather than the no-op of multiply by 1.