Calcolatore ROI
Indichi quanto ha investito e quanto è rientrato: 1000 investiti e 1200 rientrati danno un utile netto di 200,00 e un ROI del 20,00 %. Gli importi sono trattati in centesimi esatti, senza errori di arrotondamento accumulati. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Importo investito
- 1000
- Importo restituito
- 1200
- Importo investito
- 1000.00
- Importo restituito
- 1200.00
- Profitto netto
- 200.00
- Ritorno sull’investimento (%)
- 20.00
Inserisca il capitale investito e l'importo totale restituito per ottenere l'utile netto e la percentuale di ROI, calcolati in centesimi interi esatti con arrotondamento half-up per eccesso lontano dallo zero a due decimali.
Che cosa misura il ROI
Il ritorno sull'investimento confronta ciò che un investimento ha reso con ciò che è costato. Sottragga il capitale investito dall'importo totale rientrato per ottenere l'utile netto, divida l'utile per il capitale investito e moltiplichi per 100. Investire 1000 e ricevere 1200 dà un utile netto di 200,00 e un ROI del 20,00 %. Una cifra positiva indica che il denaro è cresciuto, una negativa che una parte è andata persa, e non ricevere nulla equivale a −100 %. Vedere la percentuale accanto all'utile netto aiuta a valutare un'operazione a colpo d'occhio.
Centesimi esatti, arrotondamento prevedibile
Gli importi vengono convertiti in centesimi interi prima di qualsiasi calcolo, così il denaro non accumula mai i piccoli errori delle frazioni binarie: 1000 e 1200 diventano 100000 e 120000 centesimi. La percentuale viene poi arrotondata a due decimali, con la metà verso l'alto e lontano dallo zero: una perdita che cade esattamente a metà si arrotonda allontanandosi dallo zero e non verso di esso. Così è semplice controllare, riga per riga, una colonna di ROI a due decimali nel suo foglio di calcolo.
Casi d'uso
Vaglio delle operazioni
Mostri la percentuale di ROI e l'utile netto accanto a un semplice esborso di capitale.
Convalida di fogli di calcolo
Verifichi lato server una colonna di ROI a due decimali, half-up, rispetto al suo foglio.
Domande frequenti
Sono ammessi numeri in virgola mobile?
No. Usi un intero non negativo o una stringa monetaria con al massimo due decimali.
Come viene arrotondata la percentuale?
Half-up per eccesso lontano dallo zero a due decimali, calcolata interamente in centesimi interi.
Che cosa succede se è rientrato meno di quanto ho investito?
Sia l'utile netto sia il ROI diventano negativi. Se non rientra nulla, cioè un ritorno pari a zero, il ROI è del −100 %, il che significa che l'intero investimento è andato perso.
Il capitale investito può essere zero?
No. L'investimento deve essere maggiore di zero, perché il ROI si ottiene dividendo per esso. L'importo rientrato, invece, può essere zero per rappresentare una perdita totale.
Quanti decimali posso inserire?
Fino a due, come in 1200,5 o 1200,50. Il segno più iniziale, gli zeri di riempimento come in 01000, la notazione scientifica e più di un separatore decimale vengono rifiutati come formato errato.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/roi \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"investment":"1000","return_amount":"1200"}'const res = await fetch("https://api.kit.forhosting.com/dev/roi", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"investment": "1000",
"return_amount": "1200"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/roi",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"investment": "1000",
"return_amount": "1200"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/roi", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"investment":"1000","return_amount":"1200"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"investment":"1000","return_amount":"1200"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/roi", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"investment": "1000",
"return_amount": "1200"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.roi",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Formula e analisi degli importi monetari
dev.roi calcola il ritorno sull'investimento come (return_amount − investment) ÷ investment × 100, insieme al net_profit che lo determina. Per evitare la deriva della virgola mobile binaria sul denaro, entrambi gli input vengono convertiti in centesimi interi con BigInt prima di qualsiasi calcolo: nell'esempio 1000 e 1200 diventano 100000 e 120000 centesimi, dando net_profit 200,00 e roi_percent 20,00. Ogni campo accetta un intero sicuro non negativo oppure una stringa decimale canonica con al massimo due cifre frazionarie — "1200", "1200.5" e "1200.50" sono tutti validi, ma un segno più iniziale, zeri di riempimento come "01000", la notazione scientifica, più di un punto decimale o un letterale float JavaScript vengono tutti rifiutati come formato errato. investment deve risultare in più di zero centesimi affinché la divisione sia definita; return_amount può essere zero, che rappresenta una perdita totale e produce un −100,00 percento.
Centesimi interi e half-up per eccesso lontano dallo zero
I due centesimi che restano diventano i due decimali della stringa percentuale. roi_percent non viene mai calcolato in virgola mobile. Lavorando interamente in BigInt, il motore forma profit_cents × 10000, poi divide per investment_cents con un passo esplicito half-up, per eccesso lontano dallo zero — aggiunge metà del divisore prima della divisione intera e rispecchia il segno per le perdite, così un valore esattamente a −0,5 arrotonda a −1 anziché verso lo zero. Quando return_amount è inferiore a investment, sia net_profit sia roi_percent portano un meno iniziale: investa 1000, ne riceva indietro 800, e vedrà net_profit −200,00 con roi_percent −20,00.
Output, errori e dove eseguirlo
Il progetto resta deliberatamente ristretto — la versione uno non annualizza, non pondera un portafoglio né converte valute — così la superficie firmata è breve e verificabile. Le attività fallite non vengono mai addebitate sul saldo prepagato. Ogni risposta riuscita riporta quattro stringhe a due decimali: investment e return_amount normalizzati alla forma canonica, net_profit con il suo segno, e roi_percent. I percorsi di errore usano messaggi stabili e confrontabili, ciascuno generato come un tipizzato invalid_input: un investment o return_amount mancante, un investment nullo, un valore negativo segnalato come negativo prima del nome del campo, e un importo malformato riportato come formato non valido.
Casi di integrazione
fixture golden di CI
Fissi stringhe esatte di net_profit e roi_percent che non variano mai tra le piattaforme.
Domande tecniche
investment può essere zero?
No. Deve risultare in più di zero centesimi, altrimenti si ottiene un errore tipizzato invalid_input.
Il ROI può essere negativo?
Sì, quando return_amount è inferiore a investment; sia net_profit sia la percentuale portano un meno.
È gratuito nel browser?
Sì. L'API costa $0.002 per chiamata, addebitata solo sulle attività riuscite.