淡定的白开水 · clickhouse中字符串与数字相关联 ...· 1 月前 · |
追风的便当 · 揭秘“另类探墓直播”:有人装鬼引流,有人取尸 ...· 1 月前 · |
长情的企鹅 · 杰拉德·瓦尔基里 - 萌娘百科 ...· 7 月前 · |
大鼻子的煎鸡蛋 · 【第736篇】i社游中国官网app最新正版_ ...· 8 月前 · |
讲道义的脸盆 · 哪些人的婚姻容易出现第三者呢?_网易订阅· 8 月前 · |
会搭讪的大葱 · 除了公司发送的测评链接,还可以在哪儿做北森测 ...· 1 年前 · |
我有一个字符串,其中包含一个十进制值,我需要将该字符串转换为浮点变量。因此,我有一个字符串的例子是"5.45“,我想要一个浮点等效值,这样我就可以向它添加.1。我在互联网上搜索过,但我只看到如何将字符串转换为整数。
你根本不需要对它进行转换:
% perl -e 'print "5.45" + 0.1;'
5.55
Perl实际上只有三种类型:标量、数组和散列。即使是这种区别也是有争议的。;)每个变量的处理方式取决于您如何处理它:
% perl -e "print 5.4 . 3.4;"
5.43.4
% perl -e "print '5.4' + '3.4';"
8.8
Perl是一种基于上下文的语言。它不会根据你给它的数据来做它的工作。相反,它会根据您使用的运算符和使用这些运算符的上下文来确定如何处理数据。如果你做数字排序的事情,你会得到数字:
# numeric addition with strings:
my $sum = '5.45' + '0.01'; # 5.46
如果你做字符串排序的事情,你会得到字符串:
# string replication with numbers:
my $string = ( 45/2 ) x 4; # "22.522.522.522.5"
Perl主要知道要做什么,而且大部分都是正确的。另一种说法是Perl更关心动词而不是名词。
你是否正在尝试做一些事情,但它不起作用?
谷歌把我带到这里,同时搜索phill提出的相同问题(排序浮点数),所以我认为尽管这个帖子有点老了,但还是值得把答案贴出来。我是perl的新手,还在为它着迷,但brian d foy的说法是:"Perl更关心动词而不是名词。“上面的话确实一针见血。在应用排序之前,您不需要将字符串转换为浮点数。您需要告诉排序将值排序为数字,而不是字符串。即
my @foo = ('1.2', '3.4', '2.1', '4.6');
my @foo_sort = sort {$a <=> $b} @foo;
有关排序的更多详细信息,请参见 http://perldoc.perl.org/functions/sort.html
据我所知, int() 并不是一个用于指定数据类型的“强制转换”函数,它只是(Ab)用于将上下文定义为算术类型。我过去(Ab)使用(0+$val)来确保$val被当作一个数字来处理。