输入 当A,B,C分别是: A = 27.629999 B = 29.709202 C = -0.070
Then output need to be:
**it should not print anything as 27(=A) matches with {B+ (B*C)} =27 or
(val2+ val3)= 27
下面是我使用abs在十进制之前获取整数值的代码,但它采用的是像27.8978而不是27这样的完整整数
#!/tools/xgs/perl/5.8.5/bin/perl -w
#!/usr/bin/perl
use strict;
use warnings;
my $val1 = abs($A) ;
my $val2 = $B ;
my $val3 = $val2 * ($C) ;
my $val4 = abs ($val2 + $val3) ;
if ($val1 ne $val4)
{
print " $val1 not equal to $val4\n";
}
******************************
Input
when A, B, C are this:
A = 27.629999
B = 29.709202
C = -0.070
Then output need to be:
**it should not print anything as 27(=A) matches with {B+ (B*C)} =27 or
(val2+ val3)= 27
Mean to say while comparing it should consider the integer before decimal.
when A,B,C are this:
A= 27.56
B= 25.678
C= 0
output in this case:
A (27) is not matching with {B+(B*C)} = 25+(25*0) =25
答案 0 :(得分:3)
您一直在使用abs()
。
绝对值
绝对
返回其参数的绝对值。如果省略VALUE,则使用
$_
。
abs()
基本上从数字中删除减号。传递它-27.8978,它将返回27.8978。将其传递给27.8978,它将为您带来相同的价值。更改数字的大小没有任何作用。
听起来像您要int()
。
int EXPR
int
返回EXPR的整数部分。如果省略EXPR,则使用$ _
我认为您对定义感到困惑。你说:
我已经使用abs取小数点前的整数值,但它采用的是27.8978而不是27的完整整数
整数是整数。它只是小数点前的数字部分。 27.8978不是 一个“整数”,它是一个浮点数(也称为实数)。
答案 1 :(得分:2)
您使用了错误的功能abs()
并没有达到您的预期。 abs()
将负数转换为正数。您需要int()
删除小数点后的数字部分。