おそらく愚かな質問ですが、私はちょうどF#で始まったばかりですが、少し問題があります。F# - floatで整数を掛ける
は、私はこのような機能を持っていると言う:
let multiplyByTwo x = x * 2
私はこのように、これを呼び出すとき:
let result = multiplyByTwo 5
すべてが大丈夫です、私はそれを呼び出すと、結果は10
ですこのように:
let result = multiplyByTwo 2.5
私は結果として5または5.0を得ることを期待しています。実際の結果は次のとおりです。
let result = multiplyByTwo 2.5 ;;
--------------------------------- ^^^stdin(4,28):error FS0001:この式は、ここではタイプ
int
しかし、私は、この関数はやや一般的なことがしたいので(つまり、浮動小数点数と整数の両方を受け入れる)
float
型を持つことが期待された、私はこれが好きではありません。もちろん私の質問:どのようにこれを解決するのですか?
私はF#についてはよく分かりませんが、あなたの関数の '2'はintと見なされていますが、xがintであることを期待しています。 – RedEyedMonster
私はF#で始まったときに 'float'と' int'の 'incompatibility'が本当にバグしていましたが、数年後には、ゆっくりとさまざまな型として考えるようになりました。しばしば、私は本当に*ほしいものを自分自身に尋ねることを余儀なくされました。 – Benjol
これは言語上の欠陥だと私は考えています。私は実数を扱いたいときに浮動小数点数を使用し、性能や精度については気にしません。 –