所以我试图运行这个程序来检查每个输入,看看输入是否匹配正确的类型,int,double和boolean。然而,双重价值给我带来了麻烦。 hasnextDouble接受一个int,变量将其变为double。我可以帮助解决这个问题,并解释为什么,我不想要一个答案,我想理解。
<rules>
<rule name="some_name">
<match url="^([_0-9a-z-]+)/([0-9]+)/$" />
<action type="Rewrite" url="index.php/{R:1}?idspec={R:2}" />
</rule>
</rules>
答案 0 :(得分:0)
双精度空间是整数的超集,即int可以拟合为double,或者可以解释为double。如果你在数字中特别需要小数点,你应该检查它。
答案 1 :(得分:0)
解释为什么
因为int值可以表示为double值,所以在java中整数值可以隐式转换为double,但反之则不然:
double d = 1.0; // valid
double dd = 1; // valid
int i = 1; // valid
int ii = 1.0; // error
我可以帮助解决这个问题
添加检查它是否为整数格式:
while(!(input.hasNextDouble() && !input.hasNextInt()))