f# - 十进制转换F#脚本与编译后的F#

标签 f# decimal type-conversion

在F#Interactive中,以下代码起作用:

> printfn "%A" (decimal 1I)
1M

但是,在已编译的F#程序中,出现错误消息:
The type 'Numerics.BigInteger' does not support a conversion to the type 'decimal'

那里发生了什么?是因为在F#版本之间使用了不同的一组引用(以及引用的版本)?或decimal的内部表示形式在编译和解释模式之间是不同的。

最佳答案

这可能是因为您的F#编译程序针对的是.NET Framework 2.0/F#2.0。 F#交互式正在使用.NET Framework 4.0/F#4.0。

2.0框架使用FSharp.Core中的BigInteger。 4.0框架使用System.Numerics.BigInteger。 FSharp.Core 1没有转换为十进制。

将项目更改为目标.NET 4.0,并添加对System.Numerics的引用,所有内容都应匹配。

关于f# - 十进制转换F#脚本与编译后的F#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8045079/

相关文章:

scala - 如何用长参数列表做无点样式

f# - Printfn 值不是函数,不能在 F# 的交互窗口中应用

c# - 对象列表转换的最佳方式是什么

python 3 无法将字节连接到列表的 str

f# - 使用不完整的模式匹配作为过滤器?

f# - 继承只有私有(private)构造函数的 C# 类

angularjs - angular.js-欧洲符号中的十进制数字

java - 小数格式舍入

Javascript 十进制转二进制 - 64 位

c++ - 我应该为我正在包装的结构使用转换运算符吗?