Java小树的参天成长(数据截断问题)

这里以 Short类型和byte类型的123为例。

af3c135fe8cf45459701fb70cc19585f.png

 上图右面是不同类型数值在计算机中的存储方式(二进制的表现形式),这里是123,分别以byte和short两种不同的类型存储。

1e34a3d6bbf84471b6812c098bbf9718.png

 上图是数据截取之后,黑色的部分就是被截取的,剩下的白色部分为截取后的数值,很截取之后的数值依然是123。

接下来看一下257的情况。

a57a1f6df6454ce9b4139266e815611f.png

转化为byte,也就是截取之后

f47f0b0dabdd4cb6823e82bf06d30c9f.png

 很显然截取后的数据就是1

注意在计算机二进制表现形式当中,首位既表示数字也表示符号(正号或者负号),0表示正,1表示负数。这里以short类型的130为例,强制转化为byte之后,数值变为了-126。

49b08091865442839e394ba0171bba0c.png

public class ThinkYou {
    public static void main(String[] args) {
        System.out.println("感谢您的阅读");
        Scanner input = new Scanner(System.in);
        System.out.println("——————有帮助点1,认为垃圾点2.赞助请点3————————");
        int a = input.nextInt();
        switch (a) {
        case 1:
            veryhelp();
            break;
        case 2:
            trash();
            break;
        case 3:
            sponsor();
            break;
        }
        System.out.println("祝您生活愉快!再见");
    }
 

Java中,有多种方法可以保留小数的位数。其中一种方法是使用BigDecimal类和setScale方法来设置精确度,并使用RoundingMode.HALF_UP表示使用最近数字舍入法则来近似计算。例如,可以使用以下代码来保留一个double类型的数值到小数点后两位: ```java double number = 3.14159; BigDecimal bd = new BigDecimal(number).setScale(2, RoundingMode.HALF_UP); double result = bd.doubleValue(); ``` 这样,result的值将会是3.14,保留了两位小数。另外,还可以使用Math.round方法来实现四舍五入的效果。例如: ```java double number = 3.14159; double result = Math.round(number * 100) / 100.0; ``` 这样,result的值也将会是3.14。以上是两种常用的方法来保留小数的位数。根据具体的需求,可以选择适合的方法来实现保留2位小数的功能。 #### 引用[.reference_title] - *1* [Java保留2位小数 JS保留2位小数 Java截取2位小数 Math.round((1.0/3)*100)/100.0](https://blog.csdn.net/tanzongbiao/article/details/88350208)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [double类型数据保留四位小数的另一种思路](https://blog.csdn.net/weixin_32141253/article/details/114116547)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java提高篇(四)-java的四舍五入 - Java 技术驿站-Java 技术驿站](https://blog.csdn.net/weixin_34042899/article/details/114803875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小智学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值