对于任意实数,整数类型或浮点类型仅提供近似值.积分近似在一个方向或另一个方向上永远不会超过0.5(假设实数适合该整数类型的范围).浮点近似永远不会超过一小部分(同样,假设实数在该浮点类型支持的值范围内).这意味着对于较小的值,浮点类型将提供更接近的近似值(例如,在浮点数中存储PI的近似值将比int近似值3更准确).但是,对于非常大的值,积分类型的近似值实际上会优于浮点类型(例如,考虑值9223372036854775806.7,当表示为9223372036854775807为长时,仅取消0.3,但在存储为9223372036854780000.000000时表示为9223372036854780000.000000一个浮子).
这只是一个关于如何打印值的工件.9/10和1/10不能完全表示为浮点值(因为分母不是2的幂),就像1/3不能精确写成小数(你得到0.333 ...其中3的重复永远).无论您使用何种.NET语言,此值的内部表示形式都是相同的,但打印值的不同方式可能会以不同方式显示.请注意,如果在FSI中评估1.0 - 0.9,结果将显示为0.1(至少在我的计算机上).
您在科学计算中使用的类型将取决于您要实现的目标.您的答案通常只是近似准确.你需要多准确?您的性能要求是什么?我认为十进制类型实际上是一个固定点数,这可能使它不适合涉及非常小或非常大的值的计算.另请注意,F#包含任意精度有理数(使用BigNum类型),根据您的输入,这也可能是合适的.