如何在Java中将0.xxxx更改为xxxx

omm*_*mar 7 java math

正如刚才提到的.我举一个例子,假设所有测试值都小于1但大于0.

  • 0.12(精度:3,比例:2)
  • 0.345(精度:4,比例:3)
  • 0.6789(精度:5,比例:4)

如何在不对硬度和精度值进行硬编码的情况下转换这些值.

  • 0.12 - > 12
  • 0.345 - > 345
  • 0.6789 - > 6789

对于0.1和0.01和0.001应该得到1(我知道这是我的坏主意,但我已经给了软件的业务规则集)

我更喜欢java中的解决方案,但如果有数学算法则更好.谢谢.

Eug*_*kov 11

解决方案比这里介绍的任何人都简单得多.你应该使用BigDecimal:

BigDecimal a = new BigDecimal("0.0000012");
BigDecimal b = a.movePointRight(a.scale());
Run Code Online (Sandbox Code Playgroud)