gpt4 book ai didi

有效地将十进制移位应用于所有数字的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:57 24 4
gpt4 key购买 nike

我正在建立一个化学模型,该模型将输入作为分子,但离散地模拟分子(即,每个分子都是一个实体)。因此,我需要能够计算出整数的比例。例如,如果我有 0.01 摩尔的 A 和 0.002 摩尔的 B,我会将其扩展为 10 个单位的 A 和 2 个单位的 < em>B。然而,这段代码非常不优雅,并假设所有摩尔计数都小于 1.0,即,

// Find the exponent to offset the value
NumberFormat format = new DecimalFormat("0.#E0");
String value = format.format(smallest);
int exponent = Integer.parseInt(value.substring(value.indexOf("E") + 1));

// Scale to whole numbers
exponent = Math.abs(exponent) + 1;
for (int ndx = 0; ndx < input.size(); ndx++) {
input.get(ndx).count = (long)(input.get(ndx).mols * Math.pow(10, exponent));
}

是否有一种有效的算法来对任意输入执行十进制移位(例如,1.1 mols A,0.11 mols B,0.001 mols C 变成 1100 个单位的 A、110 个单位的 B 和 1 个单位的 C)?

最佳答案

Algorithm for simplifying decimal to fractions 开头将小数比化为分数,分数就是你的答案。

关于有效地将十进制移位应用于所有数字的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48588621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com