我想传递一个总是已知大小的数组中的一些值.我想定义一个表示这个十进制值数组的类,它不能调整大小,总是具有相同数量的元素,并支持[]数组表示法.
在c ++中,我可以为此执行运算符重载 - 但我无法在c#中看到如何执行此操作
要清楚 - 类的使用将是这样的:
MyValues values = new MyValues;
values[3] = 14;
values[7] = 10
Run Code Online (Sandbox Code Playgroud)
.... 然后
decimal aValue = values[2];
Run Code Online (Sandbox Code Playgroud)
建议?
在 Postgres 14 中,我看到的舍入结果对我来说没有意义。试图了解发生了什么事。在所有情况下,我都会将19除以3。
将任一integer值转换为real:
SELECT 19::real /3;
Run Code Online (Sandbox Code Playgroud)
产生的值为6.333333333333333
SELECT 19/3::real;
Run Code Online (Sandbox Code Playgroud)
产生的值为6.333333333333333
然而,将双方都转换为real产量:
SELECT 19::real/3::real;
Run Code Online (Sandbox Code Playgroud)
产生的值为6.3333335
有趣的是,如果我将两边都转换为double precisionor float,答案是6.333333333333333
还
SELECT 19.0 / 3.0;
Run Code Online (Sandbox Code Playgroud)
产量6.333333333333333
SELECT 19.0::real / 3.0::real;
Run Code Online (Sandbox Code Playgroud)
产量6.3333335
SELECT ( 16.0 / 3.0) :: real;
Run Code Online (Sandbox Code Playgroud)
产量6.3333335
我现在看到:
SELECT 6.333333333333333::real;
Run Code Online (Sandbox Code Playgroud)
产量6.33333335
所以真正的问题似乎是:
为什么我们以这种奇怪的方式四舍五入(我知道实数/浮点数是不精确的,但这似乎很极端。)
数据类型是什么19::real / 3;
postgresql floating-point rounding type-conversion implicit-conversion