【发布时间】:2017-03-26 12:38:59
【问题描述】:
从我之前的问题中做笔记,我创建了几个返回双精度的函数。
using System;
using MathNet.Numerics.Statistics;
using System.Linq;
public class Program
{
public static void Main()
{
decimal[] values = new[] { 39.99m, 29.99m, 19.99m, 49.99m };
Tuple<double, double> meanStd = values
.Select(x => (double)x)
.MeanStandardDeviation();
double mean = meanStd.Item1;
double std = meanStd.Item2;
Console.WriteLine("Mean = " + mean);
Console.WriteLine("Std = " + std);
}
}
我必须使用 MathNet 库。
问题-我得到的输出是双倍的,但我需要十进制。 我正在使用 Convert.toDouble(std) 。我会使用一些数据吗?我怎样才能避免这种情况。 是否可以使用 MathNet 获得十进制输出。
谢谢 附言- 这是简单的代码,我正在使用 MathNet 创建许多实用方法,所有方法都返回双精度。
【问题讨论】:
-
如果 Math.NET 处理双精度,那么你就不能让它处理小数。
-
感谢您的评论。据我所知,MathNet 库处理 double,所以我正在等待一些 MathNet(来自 MIT)lib 方面的专家。
-
如果没有处理小数的重载,那么你要么必须使用双精度数,要么找到其他库,fork mathnet 并更改它的功能,或者自己编写代码。你不能欺骗处理双精度数的代码来处理小数。
标签: c# mathnet-numerics