【发布时间】:2016-06-01 07:30:49
【问题描述】:
我有这个例子:
CREATE TABLE test
(
VALUE NUMBER (5, 2)
);
INSERT INTO test
VALUES (6.3);
SELECT * FROM test;
在表格测试中,我的值为 6.3。
我在 .NET 中有一个应用程序,它查询该表并返回单个值 6.3。
假设值像这样存储在 s 变量中:
Dim s As Single = 6.3
Dim d As Double = CDbl(s)
.NET 将 single 转换为 double,变量 d 有这个值:6.3000001907348633。我知道这是 6.3 值的不同表示,但是当我在这样的操作中使用这个 d 值时:
(795407.2 * d) / 100 = 50110,6551171188
在查询表时,在 PL\SQL 中,我想获取 6.3000001907348633 值而不是 6.3。
我怎样才能转换它,或者有一个数据类型可以做到这一点?我已经尝试过 BINARY_FLOAT 和 DOUBLE PRECISION 类型,但它们不会转换它。
编辑:使用6.3 我得到的值:(795407.2 * d) / 100 = 50110,6536。如果我将该值四舍五入以获得小数点后两位(假设这是一个货币值,我分别得到50110,66€ 和50110,65€)。
【问题讨论】:
标签: sql vb.net oracle types plsql