91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Java math.sin有無限精度版本嗎

小樊
86
2024-07-23 13:07:05
欄目: 編程語言

Java中的Math.sin函數返回的是double類型的值,具有有限的精度。如果需要更高精度的sin函數計算,可以使用BigDecimal類來實現。通過BigDecimal類,可以實現任意精度的sin函數計算。以下是一個使用BigDecimal類計算sin函數的示例代碼:

import java.math.BigDecimal;
import java.math.MathContext;

public class SinCalculation {

    public static BigDecimal sin(BigDecimal x) {
        MathContext mc = new MathContext(100); // 設置精度為100位
        BigDecimal result = BigDecimal.ZERO;
        BigDecimal term = x;

        for (int i = 1; term.compareTo(BigDecimal.ZERO) != 0; i += 2) {
            result = result.add(term);
            term = term.multiply(x.pow(2)).divide(BigDecimal.valueOf(i * (i + 1)), mc).negate();
        }

        return result;
    }

    public static void main(String[] args) {
        BigDecimal x = new BigDecimal("1.570796326794896619231321691639751442098584699687552910487472296");
        BigDecimal sinValue = sin(x);
        System.out.println("Sin(" + x + ") = " + sinValue);
    }
}

在上面的代碼中,我們使用BigDecimal類來計算sin函數的值,精度為100位。可以根據需要調整精度。這樣就可以實現任意精度的sin函數計算。

0
枣阳市| 雷波县| 南皮县| 罗甸县| 枣强县| 华蓥市| 嘉祥县| 华坪县| 云龙县| 普定县| 湖口县| 红桥区| 会东县| 诏安县| 巴林左旗| 沽源县| 桃园市| 富顺县| 东乌珠穆沁旗| 平邑县| 张掖市| 公安县| 麟游县| 肇州县| 呈贡县| 隆尧县| 莲花县| 布拖县| 扶风县| 同仁县| 永年县| 泽州县| 睢宁县| 安徽省| 建德市| 浏阳市| 南安市| 双辽市| 闻喜县| 景洪市| 滨州市|