perl - SQLite十进制标记

标签 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};

最佳答案

您无需为此编写任何代码。在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
}


如果要在文本之间转换浮点值,则可能做错了什么。

关于perl - SQLite十进制标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18033131/

相关文章:

c - 如何使用(Scitools)的perl api在.c文件中查找特定字符串 了解?

perl - perl中如何找出两个日期之间的差异?

regex - 用正则表达式匹配基于度数的地理坐标

iphone - 模拟器中的文档文件夹为空。我的 db.sqlite 在哪里?

excel - 在Excel中使用VBA截断 double

floating-point - 为什么不鼓励在 ClickHouse 表中使用浮点表示?

python - 从 shell 脚本中表的最后一行中提取值

database - 用于存储二进制数据的键/值数据库

python - 使用 SQLite 进行复杂的 SQL 查询

delphi - 从 Variant String 转换为 Double 忽略小数点