単精度と倍精度の間で変換できる方法を探しています。 1つの例として、2つの整数を除算して浮動結果を得ることが挙げられます。そんなことがあるものか?2つの整数を除算してForthで浮動小数点数を求める方法は?
答えて
10 7
SWAP S>D D>F S>D D>F F/
F.
> 1.4285714 Ok
も参照してください。http://forth.sourceforge.net/std/dpans/dpans12.htm
NBを。 rvmの答えは、標準によって保証されていないが、非常に一般的な別個の浮動小数点スタックに依存している。 kForthでは、統一された浮動小数点スタックと2セルのフロートを持つシステムでは、あなたはまだ標準ではありません
: s>f s>d d>f ;
: r/ (n n -- r) \ 'r' for floating-point; 'f' for flags, true/false.
swap s>f rot s>f f/ ;
を書くかもしれません:それは、FP番号がスタック上にあるどのように広いについての知識に依存しています。
: r/ (n1 n2 -- r)
locals| n2 n1 |
n1 s>f n2 s>f f/ ;
: r/ (n1 n2 -- r)
>r s>f r> s>f f/ ;
あなたの最善の選択肢は、ちょうど環境依存性を宣言し、あなたの道を行くことです。別々の浮動小数点スタックが本当に役立ちます。すべてのことがそうです。そして、簡単なプレリュードは、統合されたFPを提供する非常にまれなシステムの1つにコードを移植する必要がある場合、ソフトウェアでFPスタックを実装できますスタック。
これ以外にも、ここでは2番目の答えがあります。小数点以下の値を扱うために浮動小数点数は必要ありません(場合によってはお金のように、それらを必要としないだけでなくそれらを望んでいない)。 Forthは、スケーリング演算子とカスタム数値出力で固定精度の数値を使用するのが非常に簡単です。
カスタム数値出力の例:
: .$ ($ --)
s>d <# # # [char] . hold #s [char] $ hold #> type ;
100 .$ \ outputs: $1.00
1525 .$ \ outputs: $15.25
スケール分割の例:
\ what's 14 divided by three, with four fractional digits of precision?
14 1000 3 */ \ result: 4666 -- use a word like .$ to display it as 4.666
(n1 n2 n3 */
がn1 n2 * n3 /
よりも正確であることに注意してください - スペックを読み出す。)
: cents (n -- $) ;
: dollars (n -- $) 100 * ;
: $ ("$" -- $)
parse-word evaluate d>s ;
\ what's 14 dollars divided by 3?
14 dollars 3/.$ \ outputs: $4.66
\ what's 42.35 dollars divided by 2?
$ 42.35 2/.$ \ outputs: $21.17 (note the loss of a penny!)
それについての2つの注釈$
単語。第一に、それはシステムに環境依存性を持っています。終わりではなく、どこにでもあります。第二に、それはaで数字を受け入れる。 どこにでもが含まれていますが、末尾にも数字は2つの小数点以下の数字が含まれています。たとえば、$ 4235.
は42ドルと35セントと解釈され、4千5000ドルではありません。だからこそ、それはむちゃくちゃですが、より厳密で移植性の高い構文解析ワードを書くことができます。
「余分な作業のように聞こえるかもしれませんが、浮動小数点数はプログラマーの規律を要求しません」と言うかもしれません。あなたがその印象を化石化させる前に、
(sheepezさんの質問には、浮動小数点数をサポートしていない遠隔のANS Forthシステムはありません。あなたのForthシステムの文書に相談してください)
あなたは良いMac OS Xのコンパイラを知っていますか(何か平凡な、何も想像できません!) –
@ Marci-man [Mops](http://sourceforge.net/apps/mediawiki/powermops/index.php?title=Main_Page)ネイティブOSX Forthですが、少し古くなっています。 SwiftForth、VFX Forth、iForthはOSX上でうまく動作します。 gforthはOSXをUNIX上で動作させることはできますし、夢中ではありませんが、まだ非常に快適です。もし私が自分であれば、SwiftForthと一緒に行くつもりだった(とにかく私のバージョンをアップグレードするつもりだが)、もし私があなただったら、gforth(無料)またはiForth(130ドル程度)私は私ではありませんでしたが、まだForthに満足している人は、私はMopsを取得し、Enter/Enterの区別を削除することを検討したいと思います。 –
優れた副回答。はい、浮遊物をまったく使用しないでください。 – AshleyF
- 1. 2つの整数を除算して浮動小数点の結果を得る方法
- 2. 整数で浮動小数点計算を行う方法
- 3. 整数/整数で浮動小数点を得る方法
- 4. 整数の除算値浮動小数点値を返す
- 5. アセンブリの整数定数で浮動小数点数を除算します
- 6. 浮動小数点除算の計算
- 7. 浮動小数点数と整数をSQLで除算して整数の結果を得る
- 8. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 9. 浮動小数点の除算のビット表現 - 浮動小数点の除算の仕方
- 10. 浮動小数点変数なしで2つの数値を加算する
- 11. jQuery animateNumber - 浮動小数点浮動小数点の方法
- 12. 除算と浮動小数点
- 13. NASMに2つの整数、浮動小数点数を追加するには?
- 14. 浮動小数点数は浮動小数点数ですか?
- 15. なぜ整数除算が浮動小数点を返すのですか?
- 16. Verilogで浮動小数点数の小数部を計算する方法
- 17. 浮動小数点演算
- 18. 浮動小数点計算
- 19. C++で浮動小数点数を削除する方法
- 20. ハスケル - 浮動小数点を次の整数に丸める
- 21. opencvでC++で浮動小数点数を丸める方法
- 22. 浮動小数点数をN小数点以下に丸める方法[JAVA]
- 23. 浮動小数点数の乗算で浮動小数点を浮動小数点数に比べて高速に行うのはなぜですか?
- 24. Javascriptの浮動小数点数加算
- 25. 浮動小数点数を使ってJavaで小数点以下2桁に丸める方法
- 26. 浮動小数点値を二倍にして除算する
- 27. 大きな浮動小数点を整数に丸める
- 28. 浮動小数点数と小数点の計算
- 29. 浮動小数点浮動小数点浮動小数点浮動小数点数 - 浮動小数点数を持つ2つの要素:左に動くようにdivを配置する右のスタイル
- 30. 整数と浮動小数点の計算
どのような種類のものを使用していますか? – sheepez
ans(これはあなたの質問に答えるかどうかは分かりませんが、最も標準的なものであると考えられます:ANS) –
浮動小数点サポートは、いくつかの実装ではそれがないかもしれません。 – sheepez