Moh*_*sin 5 java string type-conversion
如何将10位数的双值(例如9.01236789E9)转换为字符串9012367890而不终止其任何数字?
我试过9.01236789E9*Math.pow(10,9)但结果还是双"9.01236789E18"
double d = 9.01236789E9;
System.out.println(BigDecimal.valueOf(d).toPlainString());
Run Code Online (Sandbox Code Playgroud)
虽然10个数字应该可以保存而没有问题,但如果你对使用的实际数字感兴趣,你可能应该使用它BigDecimal.
如果你真的想要在double不使用科学记数法的情况下格式化,那么你应该能够用NumberFormat它来做(或从Java 6开始)简单的字符串格式化API:
import java.text.*;
public class Test
{
public static void main(String[] args)
{
double value = 9.01236789E9;
String text = String.format("%.0f", value);
System.out.println(text); // 9012367890
NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(0);
format.setGroupingUsed(false);
System.out.println(format.format(value)); // 9012367890
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |