axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean ANDRE <jan...@cmtek.com>
Subject float type and date time format
Date Thu, 09 Dec 2004 15:30:34 GMT
Bonjour everybody!

Well, I have a strange behavior with floating number and date time format.

 1 ) With float number, 77.99 becomes 77.989998 output string under 
Axis. Why I lost some digits ??????!!!

 2) With datetime format , in c++ test code, I just  moved some fields 
to another one of the same structure and I get the following output 
string: with Axis
    <txnDate>*2004-12-09T19:54:32Z*</txnDate>
  
 I supposed that Z is for TimeZone ?  But how to construct a time to 
obtain such string ?

With dot-net client application and a java application I got the 
following string:
<txnDate>2004-12-08T00:00:00.0000000-05:00</txnDate>

Thanks a lot for your answers. Take care!

Jean .A - Canada


In c++ test code, I put the following code according to the WSDL.

C++ Test code under Microsoft  Visual C++
==============================
class TxnAmount
{
public:
    float amount;
    xsd__string currency;
    TxnAmount();
    ~TxnAmount();
};

    xsd__dateTime txnDate;
    tm* curTime;
    time_t timer;


    amount.amount = 77.99;                // paymentForm.amount
    amount.currency = "USD";            // paymentForm.currency


    memset(&txnDate, 0x00, sizeof(xsd__dateTime));
    timer = time(NULL);
    curTime = localtime( &timer );
    txnDate.tm_isdst    = curTime->tm_isdst;
    txnDate.tm_hour        = curTime->tm_hour;
    txnDate.tm_min        = curTime->tm_min;
    txnDate.tm_sec        = curTime->tm_sec;
    txnDate.tm_wday        = curTime->tm_wday;
    txnDate.tm_yday        = curTime->tm_yday;
    txnDate.tm_mday        = curTime->tm_mday;             // 
paymentForm.txnDateD - day of the month - [1,31]
    txnDate.tm_mon        = curTime->tm_mon;                // 
paymentForm.txnDateM - months since January - [0,11]
    txnDate.tm_year        = curTime->tm_year;                // 
paymentForm.txnDateY - years since 1900

Fragment of the WDSL:
==================
      <xs:element name="txnDate" type="xs:dateTime" minOccurs="0">
      </xs:element>
      <xs:complexType name="TxnAmount">
        <xs:sequence>
          <xs:element name="amount">
            <xs:simpleType>
              <xs:restriction base="xs:float">
                <xs:minInclusive value="0.00"/>
                <xs:maxInclusive value="9999999999.99"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:element>
          <xs:element name="currency" minOccurs="0">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="USD"/>
                <xs:enumeration value="CAD"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>


Fragment of the string sent by AXIS ??  Look the field amount !!!!
=============================================
<ns1:txnRequest>
<orderTotal>
<amount>77.989998</amount>
<currency>USD</currency>
</orderTotal>
<billTo>

<txnDate>*2004-12-09T19:54:32Z*</txnDate>


Mime
View raw message