我正在使用Talend Open Studio进行数据集成。
我有一个创建几个字段的tFileInputPositional。其中一个看起来像这样:“+ 0000030139808303”。
我需要将这些字段保存到BigDecimal(20,2)中,以便最后两位数字是小数部分但是,当在组件的模式中键入它时,它只是在结尾处添加“,00”号。
所以,总结......
我有什么:
0000030139808303
我想要的是什么:
301398083,03
我得到了什么:
30139808303,00
有人能帮助我让它发挥作用吗? 谢谢!
答案 0 :(得分:1)
如何使用
BigDecimal.movePointLeft(2)
?
http://www.tutorialspoint.com/java/math/bigdecimal_movepointleft.htm
答案 1 :(得分:1)
我怀疑你只想要BigDecimal.movePointLeft
。
返回一个BigDecimal,它相当于一个小数点,移动
n
位于左侧。如果n
为非负数,则该调用仅会将n
添加到该比例。如果n
为否定,则该调用等同于movePointRight(-n)
。此调用返回的BigDecimal
值为(this × 10^-n)
,缩放为max(this.scale()+n, 0)
。
例如:
import java.math.BigDecimal;
public class Test {
public static void main(String [] args) {
String text = "+0000030139808303";
BigDecimal original = new BigDecimal(text);
BigDecimal shifted = original.movePointLeft(2);
System.out.println(shifted);
}
}
输出:
301398083.03