首页 > 解决方案 > 显示一个数字的另一个数字的幂 - 上标

问题描述

在我的应用程序中,我想显示一个数字的文本视图,该数字被提升到另一个数字的幂。例如 2^3 但没有插入符号。我的实际数字采用科学形式 - 3.488807993e-5,我想将其显示为 3.4^e-5。这是我尝试过的

@Override
    public String getFormattedValue(float value, AxisBase axis) {
        String temp = String.format("%.2e", value);
        String base = temp.substring(0, temp.indexOf('e'));
        String power = temp.substring(temp.indexOf('e'));
        return base + "<sup>" + power + "</sup>";
    }

但是,它没有用。

标签: javaandroid

解决方案


首先请记住3.4e-5表示3.4 * 10 -5所以在你的格式中它将是3.4*10^-5

然后您的代码可能看起来像这样(HALF_UP舍入和默认语言环境):

String temp = "3.45678e-5";
double base = Double.parseDouble(temp.substring(0, temp.indexOf('e')));  //need double
String power = temp.substring(temp.indexOf('e') + 1);
System.out.printf("%.2f*10^%s",base, power);

打印3.46*10^-5

对于 Android 格式,您可以使用(插入变量):

((TextView)findViewById(R.id.text)).setText(
    Html.fromHtml("3.46*10<sup><small>-5</small></sup>")
); 

推荐阅读