Prezzo per 100 g: confronti i prodotti e trovi il più economico
Un pacco da 500 g a 1,5 e un sacco da 2000 g a 3 costano 0,3 e 0,15 per 100 g: vince il sacco grande, nonostante il prezzo più alto. Indichi prezzo e peso netto di ogni confezione e veda il più conveniente. 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.
Sugli scaffali del supermercato raramente si allineano confezioni uguali: una marca del distributore da cinquecento grammi, una busta premium da quattrocento e un sacco sfuso da due chilogrammi mostrano prezzi diversi, così l’etichetta più bassa spesso non è l’affare migliore. Questo calcolatore del prezzo per cento grammi normalizza ogni opzione sulla stessa base di massa, restituisce un prezzo unitario chiaro per ciascun prodotto e evidenzia la scelta più economica per costo per cento grammi, così acquirenti, pianificatori di menù e app di confronto decidono senza aritmetica mentale.
Cosa inviare: prodotti, prezzi e pesi in grammi
Ogni voce è un oggetto con prezzo a scaffale non negativo e peso netto positivo in grammi. Opzionalmente name, label, title, product o sku forniscono un’etichetta leggibile per scontrini e tabelle UI; se omette il nome, il motore assegna Prodotto 1, Prodotto 2 e così via nell’ordine dell’elenco. È richiesto almeno un prodotto; un array vuoto fallisce la validazione prima di ogni divisione.
I prezzi negativi sono rifiutati perché un confronto normale a scaffale non usa rimborsi come prezzi unitari. Tutta la validazione gira prima del calcolo del prezzo unitario, così un elenco errato non restituisce mai righe a metà. Converta Lei stesso i chilogrammi moltiplicando per mille prima della chiamata: questo prodotto resta di proposito su base grammi per chiarezza SEO e contratti stabili.
Casi d'uso
Decisioni nel corridoio del supermercato
Gli acquirenti inseriscono due o tre formati di confezione con prezzi a scaffale e vedono subito quale opzione è davvero più economica per 100 grammi prima di riempire il carrello.
Pianificazione dei menù e acquisti all’ingrosso
Cuochi casalinghi e acquirenti all’ingrosso confrontano pack familiari e buste più piccole su una base di massa equa per i menù settimanali e il rifornimento della dispensa.
Domande frequenti
Cosa succede se il peso è zero o negativo?
Il prezzo per 100 g non è definito senza massa positiva; i pesi zero e negativi sono rifiutati e non addebitati.
Servono i nomi dei prodotti?
I nomi sono facoltativi. Se omette name (o label/title), il motore etichetta le righe Prodotto 1, Prodotto 2 e così via, calcolando comunque i prezzi unitari.
Il calcolatore del prezzo per 100 g è gratuito?
Lo strumento nel browser gira gratis sul Suo dispositivo.
Come si calcola il prezzo per 100 grammi?
Divida il prezzo dello scaffale per il peso in grammi e moltiplichi per 100. Un pacco da 500 g a 1,5 costa 0,3 per 100 g, e così può confrontarlo con qualsiasi altro formato.
E se il peso della confezione è in chili?
Lo moltiplichi prima per 1000 e inserisca il risultato in grammi: un sacco da 2 kg diventa 2000 g. Tenere tutti i prodotti in grammi è ciò che rende equo il confronto.
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/price-per-100g \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"products":[{"name":"Store brand pasta","price":1.5,"weight_g":500},{"name":"Premium pasta","price":1.2,"weight_g":400},{"name":"Bulk pasta","price":3,"weight_g":2000}]}'const res = await fetch("https://api.kit.forhosting.com/life/price-per-100g", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"products": [
{
"name": "Store brand pasta",
"price": 1.5,
"weight_g": 500
},
{
"name": "Premium pasta",
"price": 1.2,
"weight_g": 400
},
{
"name": "Bulk pasta",
"price": 3,
"weight_g": 2000
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/price-per-100g",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"products": [
{
"name": "Store brand pasta",
"price": 1.5,
"weight_g": 500
},
{
"name": "Premium pasta",
"price": 1.2,
"weight_g": 400
},
{
"name": "Bulk pasta",
"price": 3,
"weight_g": 2000
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/price-per-100g", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"products":[{"name":"Store brand pasta","price":1.5,"weight_g":500},{"name":"Premium pasta","price":1.2,"weight_g":400},{"name":"Bulk pasta","price":3,"weight_g":2000}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"products":[{"name":"Store brand pasta","price":1.5,"weight_g":500},{"name":"Premium pasta","price":1.2,"weight_g":400},{"name":"Bulk pasta","price":3,"weight_g":2000}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/price-per-100g", 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": "Store brand pasta",
"price": 1.5,
"weight_g": 500
},
{
"name": "Premium pasta",
"price": 1.2,
"weight_g": 400
},
{
"name": "Bulk pasta",
"price": 3,
"weight_g": 2000
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.price_per_100g",
"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
Il motore è matematica pura e deterministica: elenchi di prodotti identici producono sempre lo stesso JSON, senza chiamate di rete, semi casuali o deriva dell’orologio. Un peso zero o negativo fallisce con invalid_input perché il prezzo unitario non è definito senza massa positiva.
Cosa inviare: prodotti, prezzi e pesi in grammi
Invii un corpo JSON con un array products obbligatorio; sono accettati gli alias items, options, list e goods quando il Suo client usa già un altro nome di campo. Il prezzo può arrivare come numero o stringa numerica; gli alias cost, amount e shelf_price si mappano allo stesso valore così casse e cataloghi conservano chiavi familiari. Il peso deve essere la massa netta edibile o vendibile in grammi, non il cartone esterno; sono supportati gli alias weight, grams, mass_g, net_weight_g e weight_grams. Peso zero e peso negativo sollevano invalid_input con un messaggio che il peso deve essere grammi positivi—la trappola classica quando un feed di codici a barre lascia la massa vuota o invertita. Prezzi o pesi estremamente grandi sono limitati affinché la matematica dell’isolate Worker resti delimitata.
Come si calcola il prezzo per 100 g e come si sceglie l’opzione più economica
Per ogni prodotto il motore applica la formula familiare del dettaglio: il prezzo per cento grammi è il prezzo a scaffale diviso per il peso in grammi, poi moltiplicato per cento. Un elenco di un solo prodotto restituisce comunque quel prodotto come cheapest con risparmio zero, utile per pipeline che vogliono sempre la stessa forma di risposta. Il prezzo a scaffale è eco arrotondato a due decimali in stile scontrino, mentre weight_g è restituito come il numero positivo validato che ha inviato. Ogni riga di risultato include l’indice basato su zero, il nome visualizzato, price, weight_g e price_per_100g. L’oggetto cheapest è la riga con il price_per_100g più basso; se due confezioni sono esattamente a pari, vince la voce precedente dell’elenco così l’esito è pienamente deterministico. Quando sono presenti due o più prodotti, savings_vs_most_expensive_per_100g indica quanto il vincitore è inferiore al prezzo unitario più caro sulla stessa base di cento grammi—utile per badge del tipo risparmi tanto per cento grammi. Il campo method è sempre price_per_100g e unit è sempre per_100g così il codice a valle può ramificare senza annusare le forme. Prodotti mancanti, elenchi vuoti, price o weight assenti, campi non numerici, peso zero e peso negativo falliscono con invalid_input e non sono addebitati dopo il rifiuto.
Uso dell’API, prezzi, flussi di spesa e limiti pratici
Usi il calcolatore gratuito del prezzo per 100 g nel browser quando è nel corridoio, pianifica la spesa settimanale o insegna l’alfabetizzazione del prezzo unitario senza installare un’altra app. Tenga elenchi di dimensioni di spesa ordinarie; il tetto di prodotti pubblicato protegge il runtime dell’isolate e copre ancora confronti di carrello pieno. La promessa del prodotto è un confronto trasparente del prezzo unitario su base di cento grammi, non lo scraping live di pagine concorrenti—tali intenti appartengono a strumenti di estrazione e monitoraggio prezzi con altri termini di ricerca e motori. Usi l’API prepagata quando un servizio di menù, un bot della spesa, un coach di budget, un aiuto agli acquisti all’ingrosso o un normalizzatore di catalogo necessita di un contratto KIT stabile a $0.002 per elemento riuscito; i fallimenti di validazione non consumano mai il saldo dopo il rifiuto del motore. Abbini questo endpoint a convertitori di valuta solo quando tutti i prezzi a scaffale condividono già una moneta—questa capacità non converte i cambi né applica imposte, offerte multipack o sconti fedeltà. Gli autori che distribuiscono SDK possono mappare l’array products in tabelle di confronto e mostrare cheapest.name più cheapest.price_per_100g in un banner di riepilogo.
Casi di integrazione
App di budget e bot della spesa
App di spese e chatbot chiamano un endpoint prepagato stabile invece di reimplementare la matematica del prezzo unitario e i controlli di peso zero in ogni linguaggio client.
Domande tecniche
Come calcolo il prezzo per 100 g di più prodotti?
Invii JSON con un array products. Ogni elemento richiede price e weight_g (grammi). La risposta elenca price_per_100g per ogni riga e un oggetto cheapest con il prezzo unitario più basso.
E se due prodotti hanno lo stesso prezzo unitario?
Il primo prodotto del Suo elenco con quel price_per_100g minimo viene restituito come cheapest, così i pareggi si risolvono in modo deterministico.