Java中println拼接' '时float变量输出11.7异常问题咨询
原因说明
- Java中
char属于数值型字符类型,参与算术运算时会自动转换为对应的ASCII码值,换行符'\n'的ASCII码十进制值为10。 - 你的代码中
+两侧分别是float类型的1.7f和char类型的'\n',符合算术运算的触发条件,实际执行的是1.7f + 10的数值计算,最终结果就是11.7,你误以为数值加了1是对'\n'的编码值认知错误导致的。
正确写法
如果你需要输出1.7后换行,有两种常用实现方式:
- 直接使用
println方法,该方法默认会在输出内容末尾追加换行:
public class FloatVersusDouble { public static void main(String[] args) { float num =1.7f; System.out.println(num); } }
- 显式拼接字符串类型的换行符,此时
+会触发字符串拼接逻辑,不会做算术运算:
public class FloatVersusDouble { public static void main(String[] args) { float num =1.7f; System.out.println(num + "\n"); // 使用双引号包裹的字符串"\n" } }
内容的提问来源于stack exchange,提问作者Holly
相关产品推荐
相关产品推荐

