私のアプリケーションでは、log4j が float を指数 (例: 2.2388E2) として出力することがわかりました。値を非指数として表示したい。(223.88)
ケースはお客様の環境で発生し、シミュレートできます。これはどのような状況で起こるのでしょうか?これを防ぐ方法はありますか?
追加情報 : エンベロープ ドキュメントは CXF を使用して生成されました。
以下は私のユニットケースです:
@Test
public void testSomething()
{
ServiceEnvelopeDocument serviceEnvelopeDocument = ServiceEnvelopeDocument.Factory.newInstance();
ServiceEnvelope serviceEnvelope = serviceEnvelopeDocument.addNewServiceEnvelope();
ServiceBody serviceBody = serviceEnvelope.addNewServiceBody();
RsDetail rsDetails = serviceBody.addNewRsDetail();
float testFloat = 223.88f;
AuxiliaryAccountStaticBalanceDetail accountStaticBalance = rsDetails.addNewAuxiliaryAccountStaticBalanceDetail();
accountStaticBalance.setAccountBalance(testFloat);
logger.error(""+accountStaticBalance);
logger.error(serviceEnvelopeDocument.toString());
logger.error(String.valueOf(accountStaticBalance));
}`
上記のソース コードの出力:
2013-01-02 14:55:33.443 ERROR (main) AccountInquiryUtilTest: - <AccountBalance xmlns="http://schemas.ocbc.com/soa/emf/account/elements">223.88</AccountBalance>
2013-01-02 14:55:33.465 ERROR (main) AccountInquiryUtilTest: - <ServiceEnvelope xmlns="http://schemas.ocbc.com/soa/emf/common/envelope/" xmlns:cbs="http://schemas.ocbc.com/soa/emf/service/CBS-CustAccountInfo-I" xmlns:agg="http://schemas.ocbc.com/soa/emf/account/aggregates" xmlns:elem="http://schemas.ocbc.com/soa/emf/account/elements">
<ServiceBody>
<cbs:RsDetail>
<agg:HolderAccountTypeDetail/>
<agg:AuxiliaryAccountStaticBalanceDetail>
<elem:AccountBalance>223.88</elem:AccountBalance>
</agg:AuxiliaryAccountStaticBalanceDetail>
</cbs:RsDetail>
</ServiceBody>
</ServiceEnvelope>
2013-01-02 14:55:33.544 ERROR (main) AccountInquiryUtilTest: - <AccountBalance xmlns="http://schemas.ocbc.com/soa/emf/account/elements">223.88</AccountBalance>
お客様の環境での出力:
<ns3:AccountBalance>2.2388E2</ns3:AccountBalance>