gpt4 book ai didi

java - 我想要做的是仅当数字在java中小数点后有超过5个零时,才将变量的 double 值转换为指数形式

转载 作者:行者123 更新时间:2023-12-02 12:17:25 24 4
gpt4 key购买 nike

这是我转换输入值的函数 ->

private void frequencyUnitConverter(Utils.FrequencyUnit from, Utils.FrequencyUnit to, double input) {
double constant = 1;
switch (from) {
case HERTZ:
if (to == Utils.FrequencyUnit.KILOHERTZ) {
constant = 0.001;
} else if (to == Utils.FrequencyUnit.MEGAHERTZ) {
constant = 1e-6;
} else if (to == Utils.FrequencyUnit.GIGAHERTZ) {
constant = 1e-9;
}
break;
case KILOHERTZ:
if (to == Utils.FrequencyUnit.HERTZ) {
constant = 1000;
} else if (to == Utils.FrequencyUnit.MEGAHERTZ) {
constant = 0.001;
} else if (to == Utils.FrequencyUnit.GIGAHERTZ) {
constant = 1e-6;
}
break;
case MEGAHERTZ:
if (to == Utils.FrequencyUnit.HERTZ) {
constant = 1e+6;
} else if (to == Utils.FrequencyUnit.KILOHERTZ) {
constant = 1000;
} else if (to == Utils.FrequencyUnit.GIGAHERTZ) {
constant = 0.001;
}
break;
case GIGAHERTZ:
if (to == Utils.FrequencyUnit.HERTZ) {
constant = 1e+9;
} else if (to == Utils.FrequencyUnit.KILOHERTZ) {
constant = 1e+6;
} else if (to == Utils.FrequencyUnit.MEGAHERTZ) {
constant = 1000;
}
break;
}

double result = input * constant;
binding.outputNumText.setText(String.valueOf(result).toLowerCase());
}

目前我得到这样的东西 ->

enter image description here

此处结果应为 0.000123 格式,而不是 1.2299999999999998e-4 格式。
使用
double result = input * Constant; 计算结果后,如何将其转换为指数格式,并且仅在小数点后有 5 个零,否则以简单十进制打印结果格式。例如0.000123

最佳答案

它不会转换这个数字,而是显示这个数字,您可以在下面执行以下操作,

double noExpo = 1.2299999999999998e-4;

NumberFormat formatter = new DecimalFormat("#0.000000");
Log.e("number", ":::" + formatter.format(noExpo));

输出-->

数字:0.000123

关于java - 我想要做的是仅当数字在java中小数点后有超过5个零时,才将变量的 double 值转换为指数形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46050891/

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