如果来自数据库的值是货币数据类型,如何将变量的值固定为小数点后的两位数。 同样在数据库中,没有为money数据类型定义精度和比例。
Ex. value from database is: 3.7700(of money datatype)
output needed: 3.77
通过输出我的意思是将值保存在变量中并打印它。我也将它转换为double,然后将其解析为两个小数点。但我怀疑的是,我们还有其他任何方法可以在没有类型转换的情况下直接处理货币数据类型吗?
答案 0 :(得分:0)
请使用java.util.formatter。您可以使用格式化字符串,如“%10.2f”
答案 1 :(得分:0)
如果数据库没有自己的精度,您可以使用自己的说明符,例如使用System.out.println("%.2f",<money variable>);
。其中%.2f
用于将限制限制在.
之后的2个位置,f
是浮动数据类型的说明符
来自[本网站] [1]
[1]:http://www.drdobbs.com/jvm/184405653我引用以下段落:
`The toDouble() method converts a monetary value to a double floating-point value.
However, you should avoid using the converted value for computational purposes, owing
to the problems associated with the use of floating-point data types with
monetary data.
You can also convert a monetary value to a long integer data type (having an implied
scaling factor of 2). In this case, an automatic round-off to the nearest whole cent is
performed.`
因此,将您的money变量转换为具有足够范围的任何类型,您可以使用转换后的值并将小数点转换为2或任何您喜欢的位置。