SQLite十进制标记

时间:2013-08-03 13:00:17

标签: perl sqlite decimal-point

这种方法是否正确找出SQLite使用的小数点?

#!/usr/bin/env perl
use warnings;
use strict;
use POSIX qw(locale_h);

my $locale_values = localeconv();

my $dec_mark_sqlite = $locale_values->{decimal_point};

1 个答案:

答案 0 :(得分:3)

您无需为此编写任何代码;在SQL语言中,.始终是小数分隔符,,始终将列表条目分开。

请注意,当您的代码与数据库交互时,使用浮点数的最直接有效的方法不需要文本转换:

my $sth = $dbh->prepare("SELECT OutVal FROM Tab WHERE InVal > ?");
my $input_value = 1.234;
$sth->execute($input_value);                # no text conversion
while (my $row = $sth->fetchrow_array()) {
    my $output_value = $row[0];             # no text conversion
}

如果要将浮点值从/转换为文本,则可能会出错。