Design: 10進数/お金の種類

作成日 2017年08月06日  ·  3コメント  ·  ソース: WebAssembly/design

Float型とその小数部が(2ベース)^(-1)である算術についての優れたWASMドキュメントがたくさんあります。

何年もの間、プログラマーはJavaScriptの回避策を使用して、すべての数値に対して64ビットの浮動小数点型しかないため、適切な小数の計算を実現してきました。
__Money__タイプまたは__Decimal__タイプをサポートする計画はありますか(例1例2 )?

事実上、10進型は、ほとんどのビジネスアプリケーションにとって重要です。 多くの言語、プラットフォーム、データベースがそれをサポートしています。

最も参考になるコメント

OPがBCDのサポートを求めているのではなく、 10進浮動小数点のサポートを求めていると思います。 それ以外は、 @ jfbastienに同意します。ハードウェアで頻繁に利用できないものをサポートする場合は、注意が必要です。 私が引用したウィキペディアのページによると、これまでのところIBMハードウェアのみがそれを実装しています。 ISTRは、Intelがそれを追求しているという噂がありましたが、何も実現していないようです。

Intelは、移植可能であると主張されているエミュレーションライブラリを提供しているようです。したがって、おそらくCはWasmにコンパイルできます。 私はそれをまったく調べていません。私の推定が正しいことを確認することすらしていません。

全てのコメント3件

WebAssemblyは、一般的なハードウェア機能がユースケースを高速化するときに、これらの機能を公開します。 一般に、他には何も公開されません。これらのプリミティブを使用して有用な機能が構築されることが期待されます。

したがって、次のように2進化10進数を評価します。

  • 最新のISAで広く利用できますか? いいえ。古いx86であり、ロングモードでは使用できません。
  • 速いですか? インテントを表現すると(たとえば、「BCD addを実行する」)、インテントが失われ、コンパイラがそれを取り戻すことができないため、コードが改善される場合があります。 ここでは明確に当てはまりませんが、そうでない場合は納得させていただきます。

機能がどれほど有用であるかは、これには関係がないことに注意してください。 便利な場合は、ライブラリを構築できます(または、C ++コードベースの一部をWebAssemblyにコンパイルできます)。 この機能の有用性とチャンピオンの存在は、いつ到達するかを決定するだけです。

OPがBCDのサポートを求めているのではなく、 10進浮動小数点のサポートを求めていると思います。 それ以外は、 @ jfbastienに同意します。ハードウェアで頻繁に利用できないものをサポートする場合は、注意が必要です。 私が引用したウィキペディアのページによると、これまでのところIBMハードウェアのみがそれを実装しています。 ISTRは、Intelがそれを追求しているという噂がありましたが、何も実現していないようです。

Intelは、移植可能であると主張されているエミュレーションライブラリを提供しているようです。したがって、おそらくCはWasmにコンパイルできます。 私はそれをまったく調べていません。私の推定が正しいことを確認することすらしていません。

@jfbastienと@ lars-t-hansenに答えを求めてください。

これで、この問題はWASMに関連しておらず、別のグループに対処する必要があることは明らかです。

ライブラリはこの問題を解決できます。

このページは役に立ちましたか?
0 / 5 - 0 評価