関数を作成し、そのリファクタリングを開始しましたが、「このプログラム ポイントより前の型情報に基づいて、メソッド 'Round' の一意のオーバーロードを決定できませんでした」という問題が発生しています。エラーですが、理由がわかりません。
let CheckValuesLin (lowValue, highValue) multiplier (sigFigs:int) =
let arithmean (lowValue, highValue) =
(lowValue + highValue) / 2.0
let createRangeValue numberModifier meanfunction=
let mean = meanfunction (lowValue, highValue)
let rangeValue = mean + (numberModifier mean) * multiplier
Math.Round(rangeValue, sigFigs)
let createRangeValues valueCreatingFunction=
(createRangeValue makeNegative arithmean, createRangeValue keepPositive arithmean)
let greatestMinValue, lowestMaxValue = createRangeValues createRangeValue
(greatestMinValue, lowestMaxValue)
失敗する行は Math.Round 行で、 に設定range
すると消えますrange: float
。これは私を混乱させます。範囲と平均を含め、私がホバーしたものはすべて正しい型が既に推測されているように見えるからです。
型のヒントを入れてもかまいません。失敗する理由を知りたいだけです。