A szám abszolút értéke:

Egyetlen sorom van szóközzel elválasztva.

Szükségem van arra, hogy a nyomtatott érték abszolút szám legyen.

Még egy számot kapok. A formátum, amellyel abszolút számot próbálok kapni. Semmi, amit csinálok, nem működik. Azt olvastam, hogy

abs(){ number } 

ezt nekem kell megadnia, de úgy tűnik, hogy nem működik. Akkor is, ha ez működik, akkor hol dolgozza ezt a hurokba?

megjegyzések

Válasz

iv class = ” A “”

Bármely szám szorzata annak előjellel pozitív számot generál. Vagy ha megadja az abszolút értéket A jel függvénye nagyon egyszerű:

sign () { echo "$(( $1 < 0 ? -1 : 1 ))"; } 

Az abszolút érték ekkor:

echo "$(( x * $(sign "$x") ))" 

Természetesen sokkal könnyebb eltávolítani a vezető negatív előjelet (ha van ilyen), vagy a teljesség kedvéért bármilyen + vagy - jel (ha létezik) bármely vezető szóközzel:

echo "${x##*[+-]}" # assuming x is an integer valid in the shell. 

Válasz

Ha negatív egész számod van, akkor azt stringként kezelheted, és eltávolíthatod a vezető kötőjelet

x=-5 echo ${x#-}. # "5" 

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük