【发布时间】:2017-05-03 16:44:45
【问题描述】:
我有一个选择语句,它以指数值返回容量,例如
Capacity=5.4835615662E+003
在 Perl 代码中
我使用的是 db2 数据库,如果我在数据库中显式运行查询,它会返回
5483.5615662
但是当我在不匹配的情况下使用容量值时使用下一个选择查询时
例如伪代码如下,
my $capacity = 'SELECT capacity FROM table';
# it returns $capacity = 5.4835615662E+003
my $result = "SELECT MEASUREMENT FROM TABLE WHERE CAPACITY = $capacity";
这里$capacity 是5.4835615662E+003,所以它不匹配表中的任何行。应该是5483.5615662。
如何在不四舍五入的情况下将指数值转换为浮点数?
【问题讨论】:
-
不要将
$capacity插入到 SQL 中。相反,请使用placeholders。 -
SELECT MEASUREMENT FROM TABLE WHERE CAPACITY=(SELECT CAPACITY FROM TABLE where ..?)如果您想将所有十进制数字保留在db2级别(无需获取容量)。 -
如果您真的拥有
5.4835615662+003,那么就出了问题,您需要准确说明您是如何从数据库中获取该字符串的。应该是5.4835615662E+003。这是一个错误,还是价值真的像那样? -
列数据类型是什么? "数字" != "浮点数"
标签: perl db2 exponential