Calcolatore di prezzo unitario
Un barattolo da 32 once a 5,99 batte uno da 16 once a 3,49 appena si divide ogni prezzo per il formato: costa meno all'oncia. Inserisca prezzi e formati nella stessa unità e vedrà segnalato l'acquisto migliore. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Un calcolatore di confronto dei prezzi unitari trasforma i prezzi a scaffale e i formati delle confezioni in una classifica equa per unità, così può vedere quale prodotto costa davvero meno. Inserisca due o più prodotti con prezzo totale e formato della confezione nella stessa unità — once, millilitri, grammi o pezzi — e lo strumento restituisce il prezzo diviso per il formato in ogni riga, segnala il miglior rapporto come il prezzo unitario più basso e mostra l'aritmetica passo dopo passo su cui può fare affidamento in un compito, in un'app per la spesa o in un foglio di calcolo acquisti.
Cosa significa il prezzo unitario quando le confezioni differiscono
Il prezzo unitario è il prezzo totale a scaffale diviso per la quantità che riceve davvero: once in un barattolo, millilitri in una bottiglia, grammi in un sacchetto o pezzi in una confezione multipla. Quando la marca A costa tre dollari e quarantanove per sedici once e la marca B cinque dollari e novantanove per trentadue once, confrontare solo i totali a scaffale trae in inganno: un barattolo è più piccolo.
Dividere ogni prezzo per il suo formato fornisce un denominatore comune per classificare il costo reale per oncia, per millilitro o per foglio. Il miglior rapporto è il prodotto con il prezzo unitario più basso, non necessariamente l'etichetta più bassa né la confezione più grande. Comprare in grande formato spesso conviene per unità, ma non sempre: un'offerta sul pacchetto piccolo può battere il formato da cash and carry, e le confezioni multiple a volte nascondono una tariffa unitaria più alta del pezzo singolo.
Questo calcolatore non converte le unità per Lei — se un prodotto è in once liquide e un altro in litri, converta prima a un'unica unità — e non applica tasse, coupon, quote associative né sconti fedeltà. Applica solo l'aritmetica che già usa a mano: prezzo unitario uguale a prezzo diviso formato, poi sceglie il minimo. hanno bisogno dello stesso contratto deterministico: stessi input, stessi prezzi unitari, stessa segnalazione di miglior rapporto, in ogni ambiente.
I formati zero e negativi sono errori duri perché la divisione per zero è indefinita e un formato di confezione negativo non è una quantità fisica in questo modello.
Consigli pratici, limiti e ricerche correlate
Usi la stessa unità di formato per tutti i prodotti di una singola chiamata: mescolare once e millilitri senza convertire non verrà corretto per Lei e produrrà una classifica priva di senso. Preferisca inviare numeri anziché stringhe formattate come valuta; le stringhe numeriche sono accettate solo quando rispettano un pattern numerico finito rigoroso, senza simboli di dollaro né virgole. Mantenga il price non negativo — i campioni gratuiti a prezzo zero sono ammessi e danno prezzo unitario zero —, mentre lo size deve restare strettamente positivo.
Questa pagina si rivolge a chi cerca un calcolatore di confronto dei prezzi unitari, uno strumento di prezzo per unità o un verificatore del miglior rapporto per formato di confezione; non è uno scraper di supermercati in tempo reale, né un convertitore multivaluta, né un ottimizzatore di coupon. Preferisca questa capacità quando conosce già prezzo a scaffale e formato della confezione e Le serve solo il prezzo unitario più la selezione del miglior rapporto; se la sua fonte è la foto di uno scontrino, estragga prima quei numeri.
Casi d'uso
Verifica del miglior rapporto al supermercato
Gli acquirenti inseriscono due o più prezzi a scaffale e formati di confezione e comprano l'opzione con il prezzo unitario più basso invece dell'etichetta più bassa.
Compiti e schede di matematica del consumatore
Gli studenti confrontano confezioni multiple e pezzi singoli e verificano i prezzi unitari scritti a mano e le scelte di miglior rapporto contro un risultato deterministico.
Domande frequenti
Come si calcola il prezzo unitario?
Il miglior rapporto è il prodotto con il prezzo unitario più basso quando tutti i formati usano la stessa unità.
Cosa succede se il formato della confezione è zero o negativo?
Un formato zero o negativo non può definire un prezzo unitario sensato, quindi la richiesta viene rifiutata e non addebitata.
Quanti prodotti posso confrontare?
Ogni prodotto richiede un prezzo non negativo e un formato strettamente positivo.
Il calcolatore di confronto dei prezzi unitari è gratuito?
Lo strumento del browser è gratuito e gira in locale.
La confezione più grande è sempre la più conveniente?
No. Il formato grande spesso costa meno per unità, ma un'offerta su una confezione piccola può batterlo, e alcune confezioni multiple nascondono un prezzo unitario più alto del prodotto singolo. Decide solo il prezzo unitario.
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/life/unit-price \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"products":[{"name":"Brand A 16 oz","price":3.49,"size":16},{"name":"Brand B 32 oz","price":5.99,"size":32}]}'const res = await fetch("https://api.kit.forhosting.com/life/unit-price", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"products": [
{
"name": "Brand A 16 oz",
"price": 3.49,
"size": 16
},
{
"name": "Brand B 32 oz",
"price": 5.99,
"size": 32
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/unit-price",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"products": [
{
"name": "Brand A 16 oz",
"price": 3.49,
"size": 16
},
{
"name": "Brand B 32 oz",
"price": 5.99,
"size": 32
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/unit-price", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"products":[{"name":"Brand A 16 oz","price":3.49,"size":16},{"name":"Brand B 32 oz","price":5.99,"size":32}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"products":[{"name":"Brand A 16 oz","price":3.49,"size":16},{"name":"Brand B 32 oz","price":5.99,"size":32}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/unit-price", 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
{
"products": [
{
"name": "Brand A 16 oz",
"price": 3.49,
"size": 16
},
{
"name": "Brand B 32 oz",
"price": 5.99,
"size": 32
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.unit_price",
"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.
Limiti
min_products | 2 |
max_products | 50 |
max_abs | 1000000000000 |
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
I formati pari a zero o negativi vengono rifiutati con invalid_input invece di inventare un infinito o un affare senza senso. Il percorso è aritmetica puramente deterministica — niente rete, niente scraper di negozi, niente seme casuale, niente dipendenza dall'orologio —, quindi l'esecutore gratuito del browser e l'API prepagata restituiscono lo stesso JSON dopo l'arrotondamento decimale fisso a ogni chiamata.
Come chiamare l'API e cosa restituisce
Può anche inviare gli array paralleli prices e sizes di uguale lunghezza, con names o labels facoltativi. Invii un corpo JSON con un campo obbligatorio: products (alias items, options, list), un array di almeno due e al massimo cinquanta oggetti. Ogni oggetto richiede un price finito non negativo (alias cost, amount) e uno size strettamente positivo (alias quantity, qty, units, package_size). Il name facoltativo (alias label, title) etichetta la riga nella risposta; se omesso, lo strumento usa Product 1, Product 2, e così via. I valori assoluti di price e size devono restare entro un bilione affinché i quozienti intermedi restino finiti in doppia precisione IEEE sul Worker e nel browser. In caso di successo, la risposta imposta count al numero di prodotti confrontati, products a un array di oggetti ciascuno con index, name, price e size arrotondati, unit_price e is_best_value, best_index al primo indice con il prezzo unitario più basso, best_name, best_unit_price, best_price e best_size ai campi di quel vincitore, savings_vs_worst_per_unit allo scarto tra il prezzo unitario più alto e il più basso, formula alla stringa unit_price uguale a price diviso size, message a un breve riepilogo in inglese e steps a un array ordinato di righe di sostituzione. Una validazione fallita — products mancante, meno di due elementi, numeri non finiti, valori fuori dai limiti assoluti o qualunque size zero o negativo — restituisce invalid_input e non viene mai addebitata. Il prezzo è una tariffa fissa di $0.002 per richiesta riuscita con articolo unitario e prezzo unitario marginale zero.
Consigli pratici, limiti e ricerche correlate
Nell'insegnamento, combini esempi: tre virgola quattro nove per sedici once contro cinque virgola nove nove per trentadue once mostra il pacchetto grande vincere sul prezzo unitario; un'offerta che porta il pacchetto piccolo sotto la tariffa unitaria del grande formato mostra il miglior rapporto ribaltarsi; due prodotti con prezzi unitari identici producono un pareggio documentato con entrambi is_best_value a true e best_index che punta al primo; e uno size zero o negativo dimostra il percorso duro di invalid_input. Le attività fallite che restituiscono invalid_input non consumano saldo prepagato, il che mantiene economici gli script esplorativi quando gli studenti azzerano lo size di proposito. Le verifiche di andata e ritorno sono facili: ricalcoli a mano ogni price diviso size e confermi che equivale al unit_price pubblicato entro lo stesso arrotondamento a dodici decimali, e confermi che il prodotto con il unit_price minimo è l'unico segnalato come miglior rapporto, salvo pareggio reale.
Casi di integrazione
Test unitari di acquisti e catalogo
I team valutano in blocco coppie di prezzo SKU e formato pacco e verificano i campi best_index e unit_price nei test di interfaccia di cassa o catalogo.
Domande tecniche
E se due prodotti hanno lo stesso prezzo unitario?
Entrambi vengono segnalati is_best_value a true. best_index punta al primo prodotto che ha raggiunto il prezzo unitario minimo.