Objective-c 负数的幂
Objective-c To the power of a negative
编写一个计算表达式的程序
3.31 × 10^(-8) + 2.01 × 10^(-7) ÷ 7.16 × 10^(-6) + 2.01 × 10^(-8)
回答
float result;
result = (3.31 * 10.0e + 2.01 * 10.0e-8) / (7.16 * 10.0e-6 + 2.01 * 10.0e-8);
NSLog(@"%e",result);
这是我找到的答案,但请解释指数部分以及为什么我需要 'e'
还有其他方法可以处理负数的幂数字。我试过用其他方式做,但没有用
答案必须是
result = (3.31e-8 + 2.01e-7) / (7.16e-6 + 2.01e-8);
您可以使用这个 stack exchange link 来更好地理解。
为了使用更少的字符,程序员应该写 10.0e-8
而不是 10^(-8)
或其他任何东西。
这是最好的解决方法
在C语言中(以及扩展,Objective-C),3×105写成3e5
。这就是C中科学记数法的简单表示方式。因此,你可以这样写:
float result = 3.31e-8 + 2.01e-7 / 7.16e-6 + 2.01e-8;
NSLog(@"%e", result);
请注意,如果您的原始数学表达式也包含括号,则您的 C 表达式应该只包含括号。
使用double,而不是float。 float 最多只能给你不到 8 位数的精度。除非你能用一些充分的理由解释为什么要使用 float,否则请使用 double。
从大约 1970 年开始,在 C 语言中 "scientific format" 编写数字的传统方式,但在 FORTRAN 中更早,第一个数字是 3.31E-8,第二个数字是 2.01E-7等等。
所以:
double result = 3.31E-8 + 2.01E-7 / 7.16E-6 + 2.01E-8;
你写的括号是错误的。或者你原来的公式是错误的,不能说是哪一个。
编写一个计算表达式的程序
3.31 × 10^(-8) + 2.01 × 10^(-7) ÷ 7.16 × 10^(-6) + 2.01 × 10^(-8)
回答
float result;
result = (3.31 * 10.0e + 2.01 * 10.0e-8) / (7.16 * 10.0e-6 + 2.01 * 10.0e-8);
NSLog(@"%e",result);
这是我找到的答案,但请解释指数部分以及为什么我需要 'e'
还有其他方法可以处理负数的幂数字。我试过用其他方式做,但没有用
答案必须是
result = (3.31e-8 + 2.01e-7) / (7.16e-6 + 2.01e-8);
您可以使用这个 stack exchange link 来更好地理解。
为了使用更少的字符,程序员应该写 10.0e-8
而不是 10^(-8)
或其他任何东西。
这是最好的解决方法
在C语言中(以及扩展,Objective-C),3×105写成3e5
。这就是C中科学记数法的简单表示方式。因此,你可以这样写:
float result = 3.31e-8 + 2.01e-7 / 7.16e-6 + 2.01e-8;
NSLog(@"%e", result);
请注意,如果您的原始数学表达式也包含括号,则您的 C 表达式应该只包含括号。
使用double,而不是float。 float 最多只能给你不到 8 位数的精度。除非你能用一些充分的理由解释为什么要使用 float,否则请使用 double。
从大约 1970 年开始,在 C 语言中 "scientific format" 编写数字的传统方式,但在 FORTRAN 中更早,第一个数字是 3.31E-8,第二个数字是 2.01E-7等等。
所以:
double result = 3.31E-8 + 2.01E-7 / 7.16E-6 + 2.01E-8;
你写的括号是错误的。或者你原来的公式是错误的,不能说是哪一个。