![]() |
1
3
试试这个:
如果没有额外的括号,它将尝试只将testdecimal转换为integer,然后尝试隐式地将int/decimal结果转换为integer,这就是导致错误的原因。 在一个不相关的注释中,您试图声明变量“times”两次。 |
![]() |
2
3
正如每个人所回答的,您必须添加括号来转换除法的结果,而不是仅仅尝试转换第一部分,然后在除法后得到错误。
我还想指出,没有必要使用
|
![]() |
3
1
你得把整个除法的结果都投出来。试试看:
但要小心,因为这可能会遭受看似随机的浮点运算错误,这取决于您使用的值。 https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html 您可以先舍入该值以避免出现这种情况。
|
![]() |
4
0
首先你不需要转换成十进制,你只需要
然后你就可以
请注意,如果数字太大,这可能会给你错误的结果。 |
![]() |
5
0
如果要将数字文本视为十进制,请使用后缀
|
![]() |
6
0
首先,您应该在testdecimal声明中添加“m”后缀,否则您的5.00是一个小后缀,而不是一个小数。
现在,编译器不知道除法结果是整数。即使你的设计可以被归类为“int”,对他来说,被别人划分的十进制数是十进制数,而不是整数。你必须隐式地投下它:
对我来说很有魅力。 |
![]() |
7
0
将表达式括在括号中,以便可以转换它:
请注意,转换时请确保尝试/捕获,因为并非所有
|
![]() |
8
0
我不知道你为什么要改信,现在是0.250。为什么要在运行时将浮点(0.250)转换为十进制?为什么不直接使用十进制文字(比如0.25m)?正如其他人所指出的,您需要将除法的结果转换为int,例如:
另外,正如其他人所指出的,您可能需要考虑如何从十进制转换为int。您是希望使用默认行为(从简单的强制转换中获得的内容),还是希望向上取整、向下取整、向偶数取整等?在这种情况下,由于除法产生一个积分结果,这无关紧要,但在一般情况下,您需要对其进行一些思考。 顺便说一下,这段代码中出现错误的原因是:
将testdecimal(5.0米)转换为int(5)。然后除以一个小数(0.25米),得到一个小数(20.0米)。最后,尝试将该十进制数赋给整数,编译器会发出错误信号。 高温高压 |