【发布时间】:2016-09-30 08:44:06
【问题描述】:
我正在编写一个适用于大型矩阵的程序。由于内存不足,我将矩阵定义为byte[]。内存不足的问题解决了,但是现在当我想给矩阵的元素赋值时,它告诉我浮点值不能转换为字节(元素的值是浮点数)。因此,我使用Convert.ToByte 将浮点值转换为字节。问题是它四舍五入浮点值,我不想要它。有没有我可以使用的函数并且它不会对浮点数进行四舍五入?
部分代码如下:
static byte[,,] Score = new byte[1501,1501,501];
Score[i, j, att] = Convert.ToByte(2.0 *(Math.Log(calNum())));
其中calnum 是一个计算浮点数的函数
【问题讨论】:
-
我认为那里缺少一些东西...如果您需要存储 X 浮点数,则不能使用 X 字节数组。如果你使用的是一个 4X 字节的数组,为什么不将它定义为一个 X 浮点数的数组呢?
-
因为我在运行程序时会面临内存不足的问题,所以我无法将矩阵定义为浮点数。所以,我把它定义为 byte[]
-
如果有任何方法可以使用
byte来表示具有相同精度的float,那么编程语言已经在使用该技术而不是浪费这么多内存,不会'他们吗?将数组分区成块,一个块保存在内存中,其他块存储在磁盘中,甚至使用数据库来存储数组。 -
@AakashM 不要仅仅因为他们是初学者或无能而同情-upvote某人的问题。这个问题不清楚,也没有重现问题,这足以让我们投反对票。
-
所以...因为您没有足够的 RAM 将值存储在浮点数中,所以您将它们转换为字节并想知道其余数据去了哪里?
标签: c#