F# 使用数学。用度量单位取整

F# 使用数学。用度量单位取整,f#,units-of-measurement,F#,Units Of Measurement,我试图在函数中使用Math.Round对货币金额进行四舍五入,如下所示: let calculateTaxablePayToDate previousPayToDate taxablePayThisMonth = taxablePayThisMonth |> fun (x:decimal) -> Math.Round(x) |> fun x -> x + previousPayToDate 我传入的类型都是decimal类型。当我尝试通过函数运

我试图在函数中使用
Math.Round
对货币金额进行四舍五入,如下所示:

let calculateTaxablePayToDate previousPayToDate taxablePayThisMonth =
    taxablePayThisMonth
    |> fun (x:decimal) -> Math.Round(x)
    |> fun x -> x + previousPayToDate 
我传入的类型都是
decimal
类型。当我尝试通过函数运行它们时,虽然我得到:

此表达式应具有类型
decimal
但这里有类型
int


我如何才能在附有测量单位的图形上使用
Math.Round

Math.Round
要求的是原始值,而不是测量值。您可以将其包装在度量值类型中的通用函数中:

open System
open Microsoft.FSharp.Core.LanguagePrimitives

let roundMeasure<[<Measure>]'u>(x: decimal<'u>): decimal<'u> = Math.Round(decimal x) |> DecimalWithMeasure


Math.Round
需要原始值,而不是度量值。您可以将其包装在度量值类型中的通用函数中:

open System
open Microsoft.FSharp.Core.LanguagePrimitives

let roundMeasure<[<Measure>]'u>(x: decimal<'u>): decimal<'u> = Math.Round(decimal x) |> DecimalWithMeasure


Math.Round
需要原始值,而不是度量值。您可以将其包装在度量值类型中的通用函数中:

open System
open Microsoft.FSharp.Core.LanguagePrimitives

let roundMeasure<[<Measure>]'u>(x: decimal<'u>): decimal<'u> = Math.Round(decimal x) |> DecimalWithMeasure


Math.Round
需要原始值,而不是度量值。您可以将其包装在度量值类型中的通用函数中:

open System
open Microsoft.FSharp.Core.LanguagePrimitives

let roundMeasure<[<Measure>]'u>(x: decimal<'u>): decimal<'u> = Math.Round(decimal x) |> DecimalWithMeasure



请添加可以使用示例how do you call
CalculateTablePaytodate
函数编译的代码段。否则很难找到答案请注意,您可以使用
(+)previousPayToDate
而不是
fun x->x+previousPayToDate
请添加可以使用示例编译的代码片段如何调用
CalculateTablePayToDate
函数。否则很难找到答案请注意,您可以使用
(+)previousPayToDate
而不是
fun x->x+previousPayToDate
请添加可以使用示例编译的代码片段如何调用
CalculateTablePayToDate
函数。否则很难找到答案请注意,您可以使用
(+)previousPayToDate
而不是
fun x->x+previousPayToDate
请添加可以使用示例编译的代码片段如何调用
CalculateTablePayToDate
函数。否则很难找到答案请注意,您可以使用
(+)previousPayToDate
而不是
fun x->x+previousPayToDate
谢谢@Lee。roundMeasure管道的最终功能是什么<代码>带度量值的小数?现在不是在编那部分,没关系,是我编出来的。不得不打开
LanguagePrimitives
:)感谢主题,但我认为管道在这里并没有真正的帮助。为什么不仅仅是
(RoundMeasureTaxablePayThisMonth)+以前的
?这也行。谢谢你,托马斯。这种语法是如何工作的;使用
roundMeasure
taxablePayThisMonth
?@Stu1986C周围的括号,将函数
roundMeasure
应用于值
taxablePayThisMonth
;括号确保首先计算函数应用程序,然后将结果传递给加法运算。谢谢@Lee。roundMeasure管道的最终功能是什么<代码>带度量值的小数
?现在不是在编那部分,没关系,是我编出来的。不得不打开
LanguagePrimitives
:)感谢主题,但我认为管道在这里并没有真正的帮助。为什么不仅仅是
(RoundMeasureTaxablePayThisMonth)+以前的
?这也行。谢谢你,托马斯。这种语法是如何工作的;使用
roundMeasure
taxablePayThisMonth
?@Stu1986C周围的括号,将函数
roundMeasure
应用于值
taxablePayThisMonth
;括号确保首先计算函数应用程序,然后将结果传递给加法运算。谢谢@Lee。roundMeasure管道的最终功能是什么<代码>带度量值的小数
?现在不是在编那部分,没关系,是我编出来的。不得不打开
LanguagePrimitives
:)感谢主题,但我认为管道在这里并没有真正的帮助。为什么不仅仅是
(RoundMeasureTaxablePayThisMonth)+以前的
?这也行。谢谢你,托马斯。这种语法是如何工作的;使用
roundMeasure
taxablePayThisMonth
?@Stu1986C周围的括号,将函数
roundMeasure
应用于值
taxablePayThisMonth
;括号确保首先计算函数应用程序,然后将结果传递给加法运算。谢谢@Lee。roundMeasure管道的最终功能是什么<代码>带度量值的小数
?现在不是在编那部分,没关系,是我编出来的。不得不打开
LanguagePrimitives
:)感谢主题,但我认为管道在这里并没有真正的帮助。为什么不仅仅是
(RoundMeasureTaxablePayThisMonth)+以前的
?这也行。谢谢你,托马斯。这种语法是如何工作的;使用
roundMeasure
taxablePayThisMonth
?@Stu1986C周围的括号,将函数
roundMeasure
应用于值
taxablePayThisMonth
;括号确保首先计算函数应用程序,然后将结果传递给加法操作。