分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
1 mi = 160934.4 cm
値を入力すると、マイルからセンチメートルへの計算が入力に合わせてその場で進みます。1 mi あたり 160934.4 cm.この比は測って求めたものではなく、定義で決まっています。計算はお使いの端末の中で行われ、入力した数字が通信に乗ることはありません。ただし、そのまわりのページのほうは、ほかのどのページとも同じように広告を読み込みます。
26.219 mi is 4220000 cm
— フルマラソン.
3 mi is 482800 cm
— 通勤にしては短いほうの道のり.
0.001056 mi is 170 cm
— 大人の平均的な身長.
0.0001864 mi is 30 cm
— 学校で使う定規.
| mi | cm |
|---|---|
| 1 | 160934.4 |
| 2 | 321868.8 |
| 3 | 482803.2 |
| 5 | 804672 |
| 10 | 1609344 |
| 20 | 3218688 |
| 50 | 8046720 |
| 100 | 16093440 |
mi を cm に変換
1 マイルは 1,760 ヤードです。この数はローマの複歩を千数えたところから来て、16 世紀に法律でハロンと帳尻を合わせた結果こうなりました。正確には 1,609.344 メートルです。
センチメートルは日常の寸法です。身長、衣類のサイズ、紙、家具。日本ではこの単位がほぼすべてを覆っているぶん、フィートやインチが顔を出す場所は限られていて——輸入品の仕様書、画面のサイズ、タイヤ——だからこそ、たまに出てきたときに換算が要ります。
マイルは、1959 年の国際ヤード・ポンド協定によってメートル法の言葉で定義されています。このページの単位に直すと、マイル 1 つが 160934.4 cm です。定義そのものは取り決めであって測定ではないので、測り直して精度を上げるという話にはなりません。そして上の小数はこれで全部で、末尾で丸めて捨てたものはありません。
この協定より前は、アメリカ式とイギリス式がわずかに違っていて、古い土地測量のデータは今も旧定義を抱えています。測量の外では、この差は誰かが実際に作業する精度よりはるかに下です。
マイルをセンチメートルに変換する理由が、実際にセンチメートルがほしいからであることはまずありません。それはたいてい、スキーマに長さの列が1つしかなく、その列が最初のマイグレーションを書いた人によってセンチメートルで定義されていて、いまや部品の幅と部屋の寸法とルートの距離を同じフィールドに収めなければならないからです。この変換は、一度きりに下された判断が引き継がれた結果です。
この見立ては、良い答えがどんなものかを変えます。誰も160,934.4を読んでマイルを思い浮かべはしないので、読みやすさは重要ではなく、正しさと可逆性が重要です。丸めた数字より正確な数字のほうが役に立ち、元の単位は値と一緒に記録しておく価値があり、何桁表示するかという問いは、値をどう保存するかという問いに置き換わります。
その連鎖を一度たどれば理由は明らかです。1インチはちょうど25.4mm、1マイルは63,360インチなので、1マイルは1,609,344mm——端数のない整数——です。10で割ってセンチメートルにすると、その整数は正確な小数の160,934.4になり、もう整数ではなくなります。
あらゆる慣用の長さがこの性質を持っています。1フィートは304.8mm、1ヤードは914.4mm、1インチは25.4mmで、それぞれミリメートルの10分の1の整数倍です。だからミリメートルは慣用単位の長さを正確に保持するのに自然な基本単位で、センチメートルは何の得もないまま小数点が1桁増えるだけです。単位をまだ自由に選べるなら、これがミリメートルを選ぶべき論拠です。
2進浮動小数点は0.4を正確に表現できません。10進数が3分の1を正確に表現できないのと同じです。だから160,934.4に最も近い倍精度の値はそれよりわずかに小さく、保存された値は実際に書いた数値ではありません。1つの距離だけならこれは見えません。差は1センチメートルの1億分の1未満だからです。合計したり、等しさを比較したり、2つの違うコード経路を経由させたりすると、見えなくなくなります。
整数の形にはこの問題がありません。1,609,344は正確に表現でき、その合計は正確で、等しいものは等しいままです。これが長さが便利な10進数の小数ではなく、小さい単位の整数カウントとして保存されることが多い理由で、通貨を浮動小数点ではなく整数セントで扱うのと同じ理屈です。
長さを正規化するスキーマはたいてい面積も持っていて、上の係数はそこに対しては間違っています。1平方マイルは160,934.4の2乗平方センチメートル、およそ2.59×10¹⁰、およそ260億です。線形の数字をそのまま当てはめると160,934倍もずれ、しかも結果はもっともらしい大きさの正の数のままなので、まさにそれがレビューをすり抜ける理由です。
体積では3乗が必要で、読めない数字になります。防御策は算術ではなく構造にあります。面積は面積の型に、長さは長さの型に保ち、単位は列名ではなく値かそのスキーマの中に置いてください。列名には何も強制力がありません。単位変換に帰される損害のほとんどは、係数の間違いではなく、正しい係数を違う次元の量に当てはめたことによるものです。
列の中の160,934.4という値は、それがどこから来たかを何も教えてくれません。測定された距離かもしれず、正確に変換された名目上のマイルかもしれず、あるいはそのマイル自体が何かの丸めだったのかもしれません。元の単位と元の数字が一度失われると、下流でどれだけ注意しても取り戻せず、次にその列を触る人は推測するしかありません。
典型的な教訓は1999年9月に失われたマーズ・クライメート・オービターです。あるチームのソフトウェアがポンド重量秒で推力を出力し、それを受け取る誘導ソフトウェアはニュートン秒を想定していました。どちらの数字にもそれがどちらであるかを示すものは何もありませんでした。どんなシステムでも修正策は同じです。単位を値と一緒に運び、それを生んだ変換を記録し、数値とその単位を1つの列の境界で分断させないことです。
複数回変換される予定の距離は、境界でだけ変換されるべきです。1つの単位でフルの精度のまま保存し、その単位ですべての計算を行い、レポートやインターフェースが必要とする単位に出力する際に変換してください。入力時に変換して結果を保存し、あとでもう一度変換するのは、何の得もないまま毎回丸め誤差を積み重ねます。
それは何桁印字すべきかという問いにも答えを出します。システムの内部では保存が正確なので全桁を使い、出力するときは元の測定が持っていた桁数だけを使ってください。10分の1マイルまでの精度を持つオドメーターの読み取り値は16,093cm分の不確かさを持っているので、160,934.4の末尾の桁は、走った距離ではなくマイルの定義そのものを示しています。
人間がその数字を読むなら、この規模の距離にセンチメートルは間違った選択です。1マイルは1.609km、1,609m、あるいは1,760ヤードで、そのどれもが読み手に何かを手渡してくれます。16万ものセンチメートルは、桁の並びと、10の位を数え損なう機会を与えるだけです。
単位がシステムによって固定されているなら、正確に変換してそのまま進んでください。単位が選べる場合——レポート、グラフの軸、ラベル、これから書く仕様書——には、関わる量が1から1,000のあいだに収まる単位を選んでください。これは基準というより経験則ですが、キロメートルとセンチメートルの両方が存在していて、どちらか一方がすべてに使われているわけではない理由でもあります。
1 mi は 160934.4 cm.画面に出しているのは有効数字 12 桁までです。マイルとセンチメートルの比そのものは定義によって決まっている厳密な値で、丸めが入るのは表示のところだけです。
いいえ。計算はブラウザーの中で行われます。通信を切ったままでも計算は続けられますし、それがいちばん手軽な確かめ方でもあります。
1cmは0.00000621371miです。同じ関係を逆から読んだだけなので、一方のページの答えをもう一方に通せば、必ず元の値に戻ります。
このページが長さの単位について述べていることは検証できます。根拠となる資料は次のとおりです。
係数はページ内の定数で、計算は四則演算だけです。だからどこにも送信されませんし、送信する必要もありません。入力した数値はブラウザーから出ません。運ぶためのリクエストが存在しないからです。