単価比較計算機
16オンスで3.49の瓶と32オンスで5.99の瓶なら、量で割ると大きい瓶のほうが1オンスあたり安くなります。価格と量を同じ単位で入れると、最もお得な商品に印が付きます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
単価比較計算機は、店頭価格とパッケージサイズを公平な単位あたりのランキングに変換し、どの商品が本当に安いかを確認できます。合計価格と、オンス・ミリリットル・グラム・個数など同一単位のパッケージサイズを持つ2つ以上の商品を入力すると、ツールは各行の価格をサイズで割った値を返し、最も低い単価を最もお得な商品として示し、宿題の確認・買い物アプリ・調達スプレッドシートで信頼できる段階的な計算過程を表示します。
パッケージが異なる場合の単価の意味
単価とは、店頭の合計価格を実際に得られる量、すなわち瓶のオンス数、ボトルのミリリットル数、袋のグラム数、マルチパックの個数で割った値です。ブランドAが16オンスで3ドル49セント、ブランドBが32オンスで5ドル99セントの場合、店頭の合計だけを比較すると誤解を招きます。片方の瓶は小さいからです。
それぞれの価格をサイズで割れば共通の分母が得られ、オンスあたり・ミリリットルあたり・枚あたりの真のコストを順位づけできます。最もお得なのは単価が最も低い商品であり、必ずしも値札が最も安い商品や最も大きなパッケージではありません。大容量は単位あたりで安いことが多いですが、常にそうとは限りません。
小パックのセールが倉庫型クラブのサイズを下回ることもあり、マルチパックが単品より高い単価を隠していることもあります。この計算機は単位を自動換算しません。片方が液量オンスでもう片方がリットルの場合は、先に一つの単位に換算してください。
また、税・クーポン・会費・ポイント割引も適用しません。手計算と同じ算術、単価=価格÷サイズを適用し、最小値を選ぶだけです。消費者数学の教師・家計アドバイザー・「どちらが安い?」
ゼロおよび負のサイズが厳格なエラーなのは、ゼロ除算が定義されず、負のパッケージサイズがこのモデルでは物理量ではないからです。
実践のコツ、制限、関連する検索
1回の呼び出しではすべての商品に同じサイズ単位を使ってください。オンスとミリリットルを換算せず混ぜても自動修正されず、意味のないランキングになります。通貨形式の文字列より数値で送ることをお勧めします。
文字列の数値は、ドル記号やカンマのない厳格な有限数値パターンに一致する場合のみ受理されます。priceは非負に保ちます。価格ゼロの無料サンプルは許可され、単価はゼロになります。
一方、sizeは厳密に正でなければなりません。授業では例を組み合わせてください。店頭価格とパッケージサイズが分かっていて単価と最得の選択だけが必要な場合にこの機能を選び、レシート写真が情報源なら先に数値を抽出してください。
往復チェックは簡単です。
活用例
食料品売り場での最得チェック
買い物客は2つ以上の店頭価格とパッケージサイズを入力し、最も安い値札ではなく最も低い単価の選択肢を購入します。
消費者数学の宿題とワークシート
学生はマルチパックと単品を比較し、手書きの単価と最得の選択を決定的な結果と照合して確認します。
よくある質問
単価はどのように計算されますか?
すべてのサイズが同じ単位のとき、最もお得なのは単価が最も低い商品です。
単価比較計算機は無料ですか?
ブラウザツールは無料でローカルで動作します。失敗したタスクに課金されることはありません。
大きいパッケージがいつもお得ですか?
いつもとは限りません。大容量は単位あたり安いことが多いものの、小さいパックの特売がそれを下回ることもあり、まとめ売りが単品より単価が高いこともあります。決め手は単位あたり価格だけです。
オンスとミリリットルの商品を比べられますか?
そのままでは比べられません。この計算は単位を換算しないため、先にすべての商品を同じ単位にそろえてください。単位が混ざったままでは、意味のない順位になってしまいます。
税金やクーポンは反映されますか?
反映されません。入力した価格を量で割るだけで、税金、クーポン、会員料金、ポイント割引などは加えません。必要なら、それらを差し引いた価格を入力してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"products": [
{
"name": "Brand A 16 oz",
"price": 3.49,
"size": 16
},
{
"name": "Brand B 32 oz",
"price": 5.99,
"size": 32
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.unit_price",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_products | 2 |
max_products | 50 |
max_abs | 1000000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
パッケージサイズがゼロまたは負の場合は、無限大や根拠のない掘り出し物を作り出すのではなく、invalid_inputで拒否されます。処理は純粋に決定的な算術であり、ネットワーク・店舗スクレイパー・乱数シード・時刻への依存がないため、無料のブラウザ実行機能とプリペイドAPIは、固定の小数丸めの後、呼び出すたびに同じJSONを返します。
APIの呼び出し方と返ってくる内容
任意のname(別名label、title)は応答内の行にラベルを付け、省略時はツールがProduct 1、Product 2などを使います。同じ長さの並列配列pricesとsizesを、任意のnamesまたはlabelsとともに送ることもできます。必須フィールドが一つあるJSONボディを送信します。products(別名items、options、list)は、2個以上50個以下のオブジェクトの配列です。各オブジェクトには、有限で非負のprice(別名cost、amount)と、厳密に正のsize(別名quantity、qty、units、package_size)が必要です。priceとsizeの絶対値は1兆以内に収める必要があり、これにより中間の商がWorkerとブラウザのIEEE倍精度で有限に保たれます。成功時、応答はcountを比較した商品数に、productsをindex・name・丸めたpriceとsize・unit_price・is_best_valueを持つオブジェクトの配列に、best_indexを最小単価の最初のインデックスに、best_name・best_unit_price・best_price・best_sizeをその勝者のフィールドに、savings_vs_worst_per_unitを最高単価と最低単価の差に、formulaを単価=価格÷サイズを表す文字列に、messageを短い英語の要約に、stepsを代入行の順序付き配列に設定します。バリデーション失敗、すなわちproductsの欠落・2個未満・非有限数・絶対上限超過・sizeのゼロまたは負は、invalid_inputを返し、課金されません。料金は成功リクエストごとに$0.002の定額で、単位アイテムで限界単価はゼロです。
実践のコツ、制限、関連する検索
16オンスで3.49と32オンスで5.99の比較は大パックが単価で勝ることを示し、小パックのセールが大容量の単価を下回る例は最得が入れ替わることを示し、単価が同一の2商品は両方のis_best_valueがtrueでbest_indexが先頭を指す文書化された引き分けを生じ、sizeのゼロや負はinvalid_inputの厳格な経路を示します。このページは、単価比較計算機・単位あたり価格ツール・パッケージサイズの最得チェッカーを探す人を対象としており、生鮮食品のライブスクレイパーでも多通貨コンバーターでもクーポン最適化ツールでもありません。invalid_inputを返す失敗タスクはプリペイド残高を消費しないため、学習者が意図的にsizeをゼロにしても探索スクリプトは安く済みます。各price÷sizeを手計算で再計算し、公開されたunit_priceと同じ12桁小数丸めの範囲で一致することを確認し、unit_priceが最小の商品だけが最得とフラグ付けされていることを、真の引き分けがない限り確認してください。
連携の活用例
調達・カタログの単体テスト
チームはSKUの価格とパックサイズの組を一括評価し、チェックアウトやカタログUIのテストでbest_indexとunit_priceの各フィールドを検証します。
技術的な質問
パッケージサイズがゼロまたは負の場合はどうなりますか?
ツールはinvalid_inputを返します。ゼロまたは負のサイズでは意味のある単価を定義できないため、リクエストは拒否され、課金されません。
何個まで商品を比較できますか?
1リクエストあたり最低2個、最大50個の商品を比較できます。各商品には非負の価格と厳密に正のサイズが必要です。
2つの商品の単価が同じ場合は?
両方ともis_best_valueがtrueとフラグ付けされます。best_indexは最小単価を達成した最初の商品を指します。