展開形計算機
展開形(expanded form)計算ツールは、入力された数を位の値ごとに、桁をひとつずつ和の形に分解します。たとえば整数 7304 は 7000 + 300 + 4 に、小数 204.75 は 200 + 4 + 0.7 + 0.05 になり、各桁が実際に担っている値を正確に確認できます。負の数、ごく小さい小数、大きな値もすべて扱え、有限数でない入力は誤った答えを返す代わりに明確なエラーで拒否されます。学校で学ぶ位取りの練習を自動化し、正確に行うものです。数をひとつ送ると、順序付きの項のリスト、正規化された式の文字列、各桁・その 10 のべき乗・符号付きの寄与を示す項ごとの詳細が返ります。同じコードがこのページで無料で動作し、API からも利用できます。
無料で実行
展開形が実際に意味すること
数の中の各桁の値は、桁そのものとその桁が置かれた位置の 2 つで決まります。7304 の 7 は七ではなく、千の位にあるため七千を意味します。展開形とは、これをそのまま書き出すことです。つまり、0 以外の各桁について「桁 × 10 のべき乗」という項を作り、それらを足し合わせるのです。これは算数で最初に出会う正式な考え方のひとつで、10 個の記号と位置のルールだけでどんな数量でも書ける理由を説明してくれます。このエンドポイントはその分解を正確に実行し、小数点以下(十分の一、百分の一、千分の一の位)にも対応します。204.75 の小数第 2 位の 5 は 0.05 に相当し、そのことが応答に明示されます。項を足せば必ず元の数に戻るため、出力はそれ自体が検算にもなります。足し戻して入力と一致しない場合は、上流のどこかに問題があるということです。
展開の計算方法
まず入力が検証されます。有限数であることが必須で、"-204.75" のような数値文字列も便宜上受け付けますが、テキストや null、非有限値は無効入力エラーで拒否され、課金されることはありません。検証済みの数はプレーンな 10 進文字列に変換され(指数表記は手作業で展開されます)、非常に大きい・小さい有限値でも浮動小数点のずれなく桁ごとに分解できます。各桁はその位、すなわち小数点を基準とした 10 のべき乗と対応付けられ、0 の桁は寄与しないためスキップされます。項は正確な 10 進文字列として組み立てられ、その後で数値に変換され、符号付きの項、正規化された式、項ごとの詳細がまとめて返されます。計算は完全に決定的で、ネットワーク・乱数・時計を使いません。そのため同じ入力からは常にバイト単位で同一の出力が得られ、無料のブラウザ版と有料の API 版が正確に一致します。
実務での活用場面
教師や学習プラットフォームは、展開形を使って練習問題を生成し、生徒の解答を自動で採点します。自由記述のテキストを比較する代わりに、構造化された項のリストを比較するのです。教育アプリは項ごとの詳細を使ってインタラクティブな内訳を表示し、生徒が数を調べるときに各桁を位ごとに色分けできます。コンテンツパイプラインは 1 回の呼び出しで機械可読の項と印刷可能な式の両方が得られるため、解答例の大量生成に利用します。教育以外でも、財務ダッシュボードや科学計測の表示、レポートなど、数量を人に説明する必要がある場面では、この分解が便利なデバッグビューになり、どの桁のオーダーが支配的かを示せます。このエンドポイントはエッジで動作し、呼び出し後に何も保持せず、料金は 1 リクエストにつき $0.002 です。同じロジックはこのページのブラウザで無料で使えるため、スクリプト・バックエンド・多数の数を処理するバッチジョブなどで自動化する場合にのみお支払いいただければ結構です。
活用例
位取りの練習問題を生成する
数のリストからワークシートや学習アプリ用の展開形の問題と解答を、1 数につき 1 回の呼び出しで作成します。
生徒の解答を自動採点する
自由記述の和の式を手作業で解析する代わりに、提出された分解を構造化された項のリストと照合します。
レポートで数値を説明する
数値の横に位ごとの内訳を表示し、どの桁のオーダーが数量を支配しているかを示します。
よくある質問
料金はいくらですか?
API では 1 リクエストにつき $0.002 です。また、このページのブラウザ上では無料でご利用いただけます。
どのような入力が受け付けられますか?
任意の有限数で、数値として、または "-204.75" のような数値文字列として渡せます。それ以外は無効入力エラーとなり、課金されません。
小数はサポートされていますか?
はい。小数部分の桁は小数の位の値に展開されます。204.75 は 200 + 4 + 0.7 + 0.05 になります。
負の数はどうなりますか?
絶対値が展開され、符号が式全体に適用されます。-204.75 は -(200 + 4 + 0.7 + 0.05) となり、返される各項にも符号が付きます。
具体的に何が返されますか?
元の数、符号付き項の順序付きリスト、正規化された展開形の式の文字列、および各桁・10 のべき乗・寄与を含む項ごとの詳細です。
結果は決定的ですか?
はい。アルゴリズムはネットワーク・乱数・時計を一切使わないため、同じ入力からは常にバイト単位で同一の出力が得られます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/expanded-form \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":7304.5}'const res = await fetch("https://api.kit.forhosting.com/math/expanded-form", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": 7304.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/expanded-form",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": 7304.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/expanded-form", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":7304.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":7304.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/expanded-form", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"number": 7304.5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.expanded_form",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |