2012-04-05 62 views
6

我有两个浮点值'a'和'b'。如何计算两个浮点值的float提示

我需要计算这两个浮点值的提醒,它必须是浮点值。

float a = 1.1; 
float b = 0.5; 

所以其余为 'r' 应准确值

即R = A%B

R = 1.1%0.5

0.5) 1.1 (2 
     1.0 
    ______ 

     0.1 

    r = 0.1 

但它会导致float值错误的操作数无效。

怎么办?

+3

哪种语言? – Jon 2012-04-05 09:48:54

+1

这是为什么对于java,C++,objective-c和c?你在4个项目中使用它? – RvdK 2012-04-05 09:50:06

+0

它看起来不像Java,因为'1.1%0.5'在Java中是合法的。 (无论他做什么,他都不会得到“准确”的价值,对于初学者来说,他甚至没有准确的'1.1'值,因为在大多数机器浮动中'1.1'不能完全表示点。) – 2012-04-05 10:03:30

回答

13

在C,C++和Objective-C中将会是fmod

1

你有没有声明?

float r; 

你必须这样做之前,你可以做任何计算

所以

float r; 

float a = 1.1; 
float b = 0.5; 

r = a % b; 
+0

在C(和C++?)中,对'%'操作符的操作数使用浮点数是无效的。 – JeremyP 2012-04-05 10:05:15

5

使用FMOD()

#include <math.h> 
double x,y,z; 
x = 1.1; 
y = 0.5; 
z = fmod(x,y) 

不要tforget的-lm如果你在linux/unix/mac-osx /上,则使用liker标志。

更多信息

$man fmod 
2

试用

float x = (float)(1.1 % 0.5); 
NSLog(@"%f",x); 

希望这有助于。

+0

@Ranga当然,这也可以在Java中使用。但是你不能在java中使用fmod()。 – 2012-04-05 10:28:06

+1

%仅在C或C++中使用整数(int)%(int) – 2015-09-10 04:31:54