Java 从设置双精度值到2位小数
我想将我的双精度值格式化为2位小数,然后将其文本转换为语音。 这是我的代码:Java 从设置双精度值到2位小数,java,android,android-studio,Java,Android,Android Studio,我想将我的双精度值格式化为2位小数,然后将其文本转换为语音。 这是我的代码: mares = mass * acc; DecimalFormat df = new DecimalFormat("#.00"); df.format(mares); String mare = String.format("The force is %f", df); home.speak(mare,TextToSpeech.QUEUE_FLUSH, null); 但它崩溃了,我不知道为什么,我把5和6放在一起,它
mares = mass * acc;
DecimalFormat df = new DecimalFormat("#.00");
df.format(mares);
String mare = String.format("The force is %f", df);
home.speak(mare,TextToSpeech.QUEUE_FLUSH, null);
但它崩溃了,我不知道为什么,我把5和6放在一起,它应该把它们相乘,然后给我30.00或者类似的数字。
当我删除DecimalFormat时,结果是30.00000000000000,我只是不喜欢它,太多的零。
有人能帮我吗?
提前谢谢 您的DecimalFormat正在返回格式化字符串,但您忽略了它,并将其作为参数传递给string.format,这肯定是不对的
将df.format的返回值指定给字符串以供进一步参考:
String mare = df.format(mares);
或直接将数值传递到String.format,并指定适当的格式精度:
String mare = String.format("The force is %.2f", mares);