カクテルのアルコール度数計算ツール
40 %のスピリッツ50 ml、20 %のリキュール25 ml、割り材75 mlで150 mlのカクテルになり、純アルコールは25 mlで全体の6分の1です。材料ごとの量と度数を入力すると、実際の度数が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
この計算ツールは、各材料の容量とアルコール度数から、混合後の飲料に含まれるアルコールの割合を求めます。蒸留酒、リキュール、ワイン、ビール、ジュース、シロップ、炭酸飲料、水を個別の材料として追加し、容量はミリリットル、強さはABVの百分率で入力してください。ノンアルコールの割り材は0とします。結果には総容量、純アルコール量、容量加重したABV、材料数が表示されます。計算は決定論的で、欠落値、数値でない値、負数、不可能な値はエラーになります。
混合した飲料のABVを求める仕組み
アルコール度数は、飲料の全液量に対して純粋なエタノールが占める割合です。そのため、ボトルに記載された度数を単純に平均することはできず、各材料の容量で重み付けする必要があります。本ツールは、各材料のミリリットル数にABVを掛け、100で割ります。
たとえば40 %の蒸留酒50 mlには純アルコールが20 ml、20 %のリキュール25 mlには5 ml含まれます。0 %のジュース、シロップ、炭酸飲料、水はアルコールを増やしませんが、総容量を増やします。すべての純アルコール量と容量をそれぞれ合計し、前者を後者で割って100倍します。
例に0 %の割り材75 mlを加えると、総量150 ml、純アルコール25 ml、ABVは16.666667 %です。この容量加重方式は、ハイボール、ティキカクテル、パンチ、ボトルカクテルにも使えます。液量は単純に加算できるものとし、混合時のごく小さな体積収縮は通常のレシピでは考慮しません。
容量と度数の正しい選び方
完成した飲料の容量に影響する液体をすべて入力してください。ボトル容量、重量、杯数ではなく、実際に注ぐ量をミリリットルで指定します。レシピがオンス表記なら、すべてを同じ基準で変換してください。
ジン、ベルモット、リキュールは銘柄や市場によって異なるため、可能な限り製品ラベルのABVを使います。米国式proofは2で割るとABVになります。ジュース、シンプルシロップ、トニック、炭酸飲料、水は、製品自体にアルコールがなければ0 %です。
固い氷の体積は入力しません。グラスに入った溶け水の量が分かる場合だけ、0 %の材料として加えてください。バッチでは全量を入力しても、すべてを同じ杯数で割っても比率とABVは変わりません。
材料は1から100件、容量は0より大きく1000000 ml以下、度数は0から100 %まで入力できます。この範囲により、負の量、有限でない数、不可能な度数を確実に検出します。
活用例
カクテルレシピの設計と比較
バーテンダーは蒸留酒、リキュール、割り材の比率を変え、完成時の容量加重された度数を比較できます。
バッチを同じ比率で拡大
パンチやボトルカクテルの全材料を比例して増やしたとき、目標ABVが保たれることを確認できます。
レシピソフトウェアの検証
開発者は、メニュー、在庫、原価、レシピ管理のテスト用に、決定論的結果と明確な入力エラーを作れます。
よくある質問
どのような計算式を使いますか?
各材料について容量×ABV÷100を合計し、純アルコール合計を総容量で割ってから100倍します。
割り材も含める必要がありますか?
はい。 ジュース、シロップ、炭酸飲料、トニック、水は0 % ABVで追加してください。総容量が増え、完成時の度数が下がります。
ABVではなくproofを入力するにはどうしますか?
米国式proofを先に2で割ってください。たとえば80 proofは40 % ABVなので、40と入力します。
氷による希釈も計算されますか?
計測した溶け水を0 %の材料として追加した場合のみ反映されます。固い氷の元の体積は入力しないでください。
結果は実験室測定値や安全な飲酒上限ですか?
いいえ。 入力容量とラベル度数に基づく決定論的な推定です。飲料や血中濃度を測定せず、安全な摂取量も判断しません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/cook/cocktail-abv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"components":[{"volume_ml":50,"abv_percent":40},{"volume_ml":25,"abv_percent":20},{"volume_ml":75,"abv_percent":0}]}'const res = await fetch("https://api.kit.forhosting.com/cook/cocktail-abv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"components": [
{
"volume_ml": 50,
"abv_percent": 40
},
{
"volume_ml": 25,
"abv_percent": 20
},
{
"volume_ml": 75,
"abv_percent": 0
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/cocktail-abv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"components": [
{
"volume_ml": 50,
"abv_percent": 40
},
{
"volume_ml": 25,
"abv_percent": 20
},
{
"volume_ml": 75,
"abv_percent": 0
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/cocktail-abv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"components":[{"volume_ml":50,"abv_percent":40},{"volume_ml":25,"abv_percent":20},{"volume_ml":75,"abv_percent":0}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"components":[{"volume_ml":50,"abv_percent":40},{"volume_ml":25,"abv_percent":20},{"volume_ml":75,"abv_percent":0}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/cocktail-abv", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"components": [
{
"volume_ml": 50,
"abv_percent": 40
},
{
"volume_ml": 25,
"abv_percent": 20
},
{
"volume_ml": 75,
"abv_percent": 0
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.cocktail_abv",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
結果の読み方と活用方法
未計測の溶け水、シェーカーに残る液体、蒸発、計量誤差、体積収縮は反映しません。また、標準ドリンク数、カロリー、血中アルコール濃度、酩酊も計算しません。レシピ比較、メニュー記録、ボトルカクテルの調整、バッチの拡大にご利用ください。全材料を同じ倍率で増やせばABVは維持され、0 %の割り材を加えると下がります。`abv_percent`は入力された混合液の推定度数です。`total_volume_ml`は全材料の容量合計、`pure_alcohol_ml`は対応する純エタノール量、`component_count`は処理した材料行数です。ブラウザー、API、テストでJSONを安定させるため、数値は小数点以下6桁に丸めます。これはレシピ上の推定値であり、実験室測定や飲酒安全基準ではありません。正常なAPIリクエストは$0.002、ブラウザー計算は無料です。不正な構造や範囲外の値には`invalid_input`を返すため、もっともらしい誤値の保存を防げます。