这是三元运算符问题还是大十进制问题?



我想得到1190的价格...

  • 法典
public void test() {
String s = "usdt_krw";
BigDecimal b = BigDecimal.valueOf(1190.00000000);
String[] split = s.split("_");
System.out.println(split[0]);
System.out.println(b.intValue());
System.out.println(
"first => " + Tests.builder()
.price(String.valueOf(
split[0].equals("usdt")
? b.intValue()
: b.doubleValue()))
.build());
System.out.println(
"second => " + Tests.builder()
.price(split[0].equals("usdt")
? String.valueOf(b.intValue())
: String.valueOf(b.doubleValue()))
.build());
}
  • 结果
usdt
1190
first => Tests(accountId=null, amount=null, price=1190.0, symbol=null, type=null)
second => Tests(accountId=null, amount=null, price=1190, symbol=null, type=null)

我认为第一个和第二个结果应该是相同的。

  • true ? 123 : 4.56将产生double123.0,平衡铸件,123投射成双倍。
  • true ? "123" : "4.56" will yield a字符串"123"。

最新更新