2012-04-01 13 views
5

Come si converte un numero intero positivo in negativo con Delphi? So che potresti usare ABS(int) per convertire un negativo in positivo, ma ho bisogno di convertirlo in positivo in negativo.Come si converte un numero positivo in negativo?

+1

Se sai che 'a' è positivo, e vuoi ottenere il numero negativo con la stessa distanza dall'origine, quindi fai semplicemente '-a'. Se non conosci il segno di 'a', e vuoi assicurarti che sia negativo o nullo nel senso che sostituisci' a' con '-a' solo se' a' è positivo, allora puoi fare come suggerisce la RBA, ma l'approccio di Mef è molto più ordinato: '-abs (a)'. –

risposta

16

da quello che so non c'è alcuna funzione per questo. si può fare

if yourvariable > 0 then 
    yourvariable := -yourvariable; 
+1

Grazie eh sì, stupido di me stesso come C++ lol, stavo pensando delphi più come base visiva. – Tprice88

+2

@Tprice, Visual Basic ha avuto l'operatore ** unario meno * proprio come Delphi per molti anni. –

+0

O, non l'ho mai usato sul loro hovent usato da quando Visual Basic 6 mi rifiuto di usare .Net. – Tprice88

36

Se si vuole essere assolutamente sicuri di ottenere un risultato negativo (o zero), utilizzare

number := -abs(number) 
+1

non dovrebbe essere: numero: = -1 * abs (numero); ? –

+8

@TomHagen: -x = -1 * x ∀x ∈ ℝ. –

1
//converting a positive to negative 

$negnumber = $posnumber - $posnumber - $posnumber ; 

eg; 

$posnumber = 4; 

$negnumber = 4 - 4 - 4 ; 
$negnumber = -4; 
+12

Stai scherzando, vero? –

5

Ehhh ... troppo tardi, ma number := number * -1; funzionerebbe anche, ma questo cambia il simbolo di qualsiasi numero, negativo a positivo e arretrato ... Per garantire un valore negativo vai con @Mef Risposta


EDIT: anche più tardi, ma number := 0 - number; funzionerebbe troppo ... Questo inverte solo il simbolo così

1

Let n essere il tuo numero e la formula per n-(n*2) = -n

Problemi correlati