POSIX:strtod - 问题

时间:2011-03-10 09:43:40

标签: perl string posix strtod

有人可以解释我,strtod如何运作。为什么我到10,2尽管en_EN - 语言环境?

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

setlocale( LC_NUMERIC, 'en_EN.UTF-8' );

my $str = '5,6';

$! = 0;
my ( $num, $n_unparsed ) = strtod( $str );

if ( $str eq '' or $n_unparsed != 0 or $! ) {
    die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
}

say $num + 4.6;

# 10,2

1 个答案:

答案 0 :(得分:3)

您的ISO 3166标识符错误。试试US