カロリーと割合からマクロ栄養素のグラム数を計算
このマクロ栄養素配分計算ツールは、1日のカロリー目標と3つの割合を、たんぱく質・炭水化物・脂質の実用的なグラム目標へ変換します。たんぱく質は1グラム当たり4カロリー、炭水化物は4カロリー、脂質は9カロリーという標準的な換算係数を使用します。すべての入力値を検証し、割合の合計が100にならない配分は受け付けません。そのため、比率を自動修正せず、明確で再現可能な結果が必要な栄養計画、指導業務、献立表、フィットネスアプリに適しています。
無料で実行
完全なカロリー基準の目標をご入力ください
まず1日分として予定する総カロリーを入力し、そのうち、たんぱく質・炭水化物・脂質に割り当てる割合を指定します。各割合は食品重量やグラム数ではなく、エネルギー全体に占める比率です。たとえば、たんぱく質30パーセントという目標は、1日のカロリー予算の30パーセントをたんぱく質から得ることを意味します。計算を明示的かつ再現可能にするため、4つの値はすべて必須です。カロリーにはゼロより大きい有限数を指定してください。各割合にはゼロから100までの有限数を指定できますので、特定の栄養素を意図的にゼロにすることは可能ですが、負数や範囲外の値は拒否されます。入力欄にはパーセント記号や単位を付けず、数値だけをご入力ください。応答には受理したカロリー、完全な配分、計算後のグラム数が含まれるため、結果の前提を正確に保存できます。本機能は個人に適した目標や比率を提案するものではなく、お客様が選択済みの値を計算するものです。
カロリーからグラムへの換算をご確認ください
計算では、最初に1日の総カロリーを各マクロ栄養素へ配分します。総カロリーに各割合を掛け、100で割ることで、栄養素ごとのエネルギー量を求めます。続いて、たんぱく質は1グラム当たり4キロカロリー、炭水化物は4キロカロリー、脂質は9キロカロリーとしてグラムへ換算します。2,000カロリーを、たんぱく質30パーセント、炭水化物40パーセント、脂質30パーセントに分ける場合、たんぱく質は600カロリーで150グラム、炭水化物は800カロリーで200グラムです。脂質は600カロリーですが、1グラム当たりのエネルギーが多いため、約66.666667グラムになります。浮動小数点の不要な誤差を抑えながら実用的な精度を保つため、結果は最大6桁の小数に丸めます。ネットワーク、乱数、保存状態、現在時刻は利用しません。同一のJSON入力から常に同一のJSON出力が得られるため、自動化、テスト、表計算、安定性が必要なサービスにもご利用いただけます。
計算前に割合の合計をご修正ください
たんぱく質・炭水化物・脂質の割合は、カロリー予算全体を表すため、合計が100でなければなりません。合計が95なら5パーセントの行き先が未指定であり、110なら目標より多いエネルギーを割り当てることになります。本機能は値を自動的に正規化したり書き換えたりせず、割合の合計を100にする必要があることを示す入力エラーを返します。この厳密な動作により入力ミスが明らかになり、お客様が承認していない前提による、一見正しそうな結果を防げます。ごく小さな許容差は通常の浮動小数点表現だけに使用し、実質的に不完全な配分は受け付けません。エラー時にはカロリーではなく、3つの割合をご確認ください。成功した応答では元の割合と計算後のグラム数をまとめて返すため、後続システムで一緒に表示できます。これらは計画上の目標であり、臨床的な測定値ではありません。食品表示、レシピ、丸め、食物繊維、アルコール、個別の必要量は周辺の栄養管理工程でご考慮ください。
活用例
毎日の食事目標を作成します
確定済みのカロリー目標と比率を、レシピや分量の参考になるグラム目標へ変換します。
指導プランの計算を検証します
算出した目標を保存する前に、提示された配分が完全であることをご確認いただけます。
フィットネスアプリで活用します
複数のクライアントやサービスに換算規則を重複実装せず、再現可能なグラム数を生成します。
よくある質問
割合の合計は100でなければなりませんか?
はい。3つの栄養素の割合が合計100にならない場合は、無効な入力としてエラーを返します。
カロリーをグラムへどのように換算しますか?
たんぱく質と炭水化物のカロリーは4で割り、脂質のカロリーは9で割ります。
いずれかの栄養素をゼロにできますか?
はい。3つの合計が100であれば、それぞれゼロから100まで指定できます。
この計算ツールは比率を推奨しますか?
いいえ。お客様の入力値からグラムを算出するだけで、医療または食事上の助言は行いません。
APIリクエストの料金はいくらですか?
公開基本料金は1リクエスト当たり$0.002です。ブラウザーでも同じ決定論的計算をご利用いただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calc2/macro-split-calculate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"calories":2000,"protein_percent":30,"carb_percent":40,"fat_percent":30}'const res = await fetch("https://api.kit.forhosting.com/calc2/macro-split-calculate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"calories": 2000,
"protein_percent": 30,
"carb_percent": 40,
"fat_percent": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/macro-split-calculate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"calories": 2000,
"protein_percent": 30,
"carb_percent": 40,
"fat_percent": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/macro-split-calculate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"calories":2000,"protein_percent":30,"carb_percent":40,"fat_percent":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"calories":2000,"protein_percent":30,"carb_percent":40,"fat_percent":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/macro-split-calculate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"calories": 2000,
"protein_percent": 30,
"carb_percent": 40,
"fat_percent": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.macro_split_calculate",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |