java计算百分比方法

Java百分比计算优化

我的方法可能有漏洞,可能不是最佳方法。后续待完善

package com.example.demo.test;

import java.text.DecimalFormat;

/**
 * @description: 计算百分比,整数相除后的小数,只保留2位,并转成百分比
 *               如:1/3=0.3333333,转成百分比后是33%
 *
 * @create: 2020/01/20 17:12
 **/
public class TestJava {
    public static void main(String[] args) {
        int a = 7;
        int b = 3;
        float result = (float)b/a;
        System.out.println(result);

        // 方式一 这种方式不够精确,没有四舍五入
        int resultNew = (int)(result * 100);
        System.out.println("方式一执行结果: " + resultNew);

        // 方式二 最佳方法
        DecimalFormat df = new DecimalFormat("0.00");
        String resultStr = df.format(result);
        System.out.println(resultStr);
        float resultFloat = Float.parseFloat(resultStr);
        int resultInt = (int)(resultFloat * 100);
        System.out.println("方式二执行结果: " + resultInt);
    }
}
### Java 实现计算百分比的工具类 下面是一个基于Java编写的用于计算百分比的工具类示例代码。此类能够接受两个作为输入参,返回它们之间关系的百分比表示形式。 ```java public class PercentageCalculator { /** * 计算百分比方法 * * @param part 部分 (分子) * @param total 总体 (分母) * @return 百分比字符串格式化为两位小的形式 */ public static String calculatePercentage(double part, double total) { if (total == 0) { throw new ArithmeticException("除不能为零"); } double percentage = (part / total) * 100; return String.format("%.2f%%", percentage); // 格式化为保留两位小百分比 } public static void main(String[] args) { try { System.out.println(calculatePercentage(50, 100)); // 输出: 50.00% System.out.println(calculatePercentage(75, 300)); // 输出: 25.00% System.out.println(calculatePercentage(0, 100)); // 输出: 0.00% System.out.println(calculatePercentage(150, 100)); // 输出: 150.00% } catch (ArithmeticException e) { System.err.println(e.getMessage()); } } } ``` 此代码片段提供了一个静态方法 `calculatePercentage` 来完成百分比计算工作,并且处理了当总体为零的情况下的异常情况[^4]。 #### 关键点说明: - **异常处理**:为了防止程序运行时发生崩溃,特别加入了对于总等于零的情况下抛出异常的操作。 - **精度控制**:利用 `String.format()` 方法将结果精确到小点后两位并附加 `%` 符号以便于阅读和进一步使用。 ### 注意事项 在实际应用中,可能还需要考虑更多的边界条件以及性能优化等问题。例如,在大规模据集上的操作可能会涉及到并发或者分布式计算等高级话题[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值