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
;括号确保首先计算函数应用程序,然后将结果传递给加法操作。