2

Rust は明らかに新しい言語 (0.8) です。面白そうで、見始めています。floatに変更されたいくつかのソフトウェアの言及に出くわしたので、を含むデータ型が定義されf64ている場所を見つけたいと思いました。floatあまり具体的なものは見つかりませんでした。私は見つけました:

浮動小数点型には、 、 、および の 3 つがfloatありf32ますf64。浮動小数点数は、 、 、または と書かれて0.01e6ます2.1e-4。整数と同様に、浮動小数点リテラルは正しい型であると推測されます。サフィックスff32、およびf64.

「 float」または「f」は16ビットだと思います。

より一般的な注意点として (私はコンピューター科学者ではありません)、 、 、 、 、 (いくつか例を挙げると) のようなこれらすべての小さなデータ型をいじる価値intint32本当にint64ありfますf32f64? 私はいくつかの言語を理解することができます。文字列はかなり複雑な型であるため、バイト型です。数値型の場合、不必要な複雑さが生じるだけだと思います。i64andf64intおよびfloatを使用しないでください(またはi64f64将来の変更に対応するために、または float と int をこれらにデフォルト設定します)。

より小さな値を必要とする低レベルのプログラムがいくつかあるかもしれませんが、それらを必要とするプログラムに使用を予約して、それらをコアから除外してみませんか? たとえばから変換するのは不必要な雑用だと思います。など、そしてそれは実際に何を達成しますかint? i64または、それらを「コア」のままにして、デフォルトで 64 ビット型にします。64ビット型は明らかに必要ですが、残りは特定の場合にのみ必要です(IMO)。

4

2 に答える 2

8

floatf32ありf64、Rust マニュアルで定義されています: http://static.rust-lang.org/doc/0.8/rust.html#primitive-types

具体的には、次の場合ですfloat

Rust 型 float は、サポートされている Rust 浮動小数点マシン型 (f32 または f64) のいずれかに等しいマシン固有の型です。これは、ターゲット マシンのハードウェアで直接サポートされている最大の浮動小数点型です。または、ターゲット マシンが浮動小数点ハードウェアをサポートしていない場合は、ソフトウェア浮動小数点ライブラリでサポートされている最大の浮動小数点型です。他の浮動小数点マシン タイプ。

は 16ビットではなく、ハードウェアに応じてまたはfloatのエイリアスです。f32f64

あなたの質問の2番目の部分に答えるために、Rustのような低言語レベルでは、floatが64ビットであると単純に仮定することはできません。ハードウェアがこの種のfloatをネイティブでサポートしていない場合、パフォーマンスが大幅に低下するためです。 . 多くのユースケースでは、操作された数値の精度を保証する必要があるため、表現が指定されていない単一の浮動小数点型を持つこともできません。

float一般に、一般的なケースで使用するf32f64、特定のニーズがある場合に使用します。

編集: floatlanguage から削除さf32れ、現在はとf64float 型しかありません。ポイントは、現在のすべてのアーキテクチャが現在 64 ビット浮動小数点数をサポートしているため、float常にf64であり、マシン固有のタイプのユース ケースが見つからなかったということです。

于 2013-10-17T02:45:45.243 に答える