我已经编写了一个函数并开始对其进行重构,但是我遇到了一些问题,即“无法根据此程序点之前的类型信息确定方法 '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
. 这让我感到困惑,因为我悬停的所有内容似乎已经推断出正确的类型,包括范围和平均值。
我不介意输入类型提示,我只想知道它为什么会失败。