我有一个变量这样爪哇 - 双和Int错误
int tff = 100;
double x = (45/100) * tff;
int y = (int) (tff - x);
System.out.println(y);
这应该是输出55,但为什么输出是100?
我有一个变量这样爪哇 - 双和Int错误
int tff = 100;
double x = (45/100) * tff;
int y = (int) (tff - x);
System.out.println(y);
这应该是输出55,但为什么输出是100?
45
是integer
,100
是integer
所以45/100 == 0
你可以尝试使用45.0
和100.0
代替
int tff = 100;
double x = (45.0/100.0) * tff;
int y = (int) (tff - x);
System.out.println(y);
或者双打,你可以投的数字:
double x = (((double)45)((double)/100)) * tff;
非常感谢:o。 –
如果你不投它首先是两倍。你会得到一个int。所以你的值会低于'1',java认为它是零。所以你不得不这样做:
int tff = 100;
int value1 = 45;
int value2 = 100;
double x = ((double)value1/(double)value2) * tff;
int y = (int)(tff - x);
System.out.println(y);
输出将是:55!
您需要将这些值标识为它们所代表的特定数字类型。你可以在很多例子中看到它。没有标识符的简单数字如100d
或100.0
例如将全部作为整数来处理。
你可以在这样的数字之后使用类型的标识符。
int tff = 100;
double x = (45/100d) * tff;
int y = (int) (tff - x);
System.out.println(y);
其他您可能需要此标识符的示例可能很长。
// This wont compile since it is out of the integer range
long l = 12312354345346;
// This will compile since it is declared to be a long
long l = 12312354345346l;
因为45/100 == 0, – Tunaki
你需要使用'(45/100D)* TFF;',你需要至少将其中一个变量确定为双重的,否则将是一个intiger分裂。 – SomeJavaGuy
它是0.45 .-,在PHP中我可以做那个数学,但在java中,在混淆 –