私は本当に低い値、そのようなこと:BigDecimalの低い値
0.00000070
0.00000097
私は残りのAPIとして、この値を提供するために、スプリングのブートを使用していますが、私のモデルは次のようにマッピングされます。
DBにpublic class Account extends BaseEntity {
@Column(name = "VALUATION", precision = 15, scale = 8)
@JsonView({ ViewsUtil.Ticker.class, ViewsUtil.Chart.class })
@Setter @Getter
private BigDecimal valuation;
// others fields
それは私が現れたように、正しく保存されていますが、表示するには、それだけでこのように示しています:
{
"valuation": 9.7e-7
}
のTh保存されているように表示する方法はありますか?
おかげ
---- EDIT
このように、この
@Column(name = "VALUATION", precision = 15, scale = 8)
@JsonView({ ViewsUtil.Ticker.class, ViewsUtil.Chart.class })
@JsonDeserialize(using = LowValueDeserializer.class)
@Setter @Getter
private BigDecimal valuation;
そして、私のカスタムデシリアライザに私のモデルを変更:
@JsonComponent
public class LowValueDeserializer extends JsonDeserializer<String> {
@Override
public String deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException {
System.out.println(parser.getDecimalValue());
return parser.getDecimalValue().toPlainString();
}
}
システムアウトが呼び出されることはありません結果は変わりません。
https://github.com/FasterXML/jackson-databind/wiki/Serialization-featuresを参照してください:WRITE_BIGDECIMAL_AS_PLAINを探してください。 –
表示するBigDecimalの書式を設定します。これは複製されたポストで使用されているフォーマットと異なるフォーマットでも複製されます。 – DwB
@DwB '.toPlainString()'の上にあるdupeのように 'String.format()'を使う利点はありますか? OPが望んでいるもののほうがはるかに良いでしょう。 – baao