Оказывается, в Microsoft Excel приоритет унарного минуса выше всего на свете, и поэтому -x*x - это (-x)*(x), а -x^2 - это (-x)^2, то есть результаты закономерно разные.
john-jack утверждает, что это вообще всегда так и должно быть очевидно каждому программисту, но мой опыт протестует.
Давайте проверим.
Для начала - легендарный GW-BASIC, из которого вырос
(
Read more... )
C:
#include
int main()
{
int x = 2;
printf("-x*x = %d, -x^2 = %d\n",-x*x,-x^2);
}Одинаково
FORTRAN:
program hello
integer x
x = 2
print *, -x*x, -x**2
end program helloОдинаково
Lua:
x = 2; print (-x*x, -x^2)Одинаково, только степенной оператор превращает число в вещественное
Rust:
fn main() {
let x = 2i32;
println!("-x*x = {}, -x^2 = {}",-x*x,-x^2);
}Одинаково
Go:
package main
import "fmt"
func main() {
var x int = 2;
fmt.Printf("-x*x = %d, -x^2 = %d\n",-x*x,-x^2)
}Одинаково
VB.NET:
Public Module Program
Public Sub Main(args() As string)
dim x as Integer
x = 2
Console.WriteLine("-x*x = "&str$(-x*x)&", -x^2 = "&str$(-x^2))
End Sub
End ModuleОдинаково
COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. MULTIPLICATION-VS-EXPONENTATION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 X PIC S9(6).
01 XX PIC S9(6).
01 XS PIC S9(6).
PROCEDURE DIVISION.
MOVE 2 TO X
COMPUTE XX EQUAL - X * X
COMPUTE XS EQUAL - X ** 2
DISPLAY '-X*X = ',XX,', -X^2 = ',XS
STOP RUN.А вот тут - минус и плюс
Reply
Leave a comment