Number conversions
No edit summary
No edit summary
Line 7: Line 7:
Solve like this:  
Solve like this:  
  self.PaymentMenuRequest.VatPercent:=vTypAvBiljett.BiljettPrisMoms.todouble
  self.PaymentMenuRequest.VatPercent:=vTypAvBiljett.BiljettPrisMoms.todouble
These are valid assignments but you change precision and lose fractions when converting to simpler types:
These are valid assignments, but you change precision and lose fractions when converting to simpler types:


  self.SomeInt:=self.SomeDouble
  self.SomeInt:=self.SomeDouble
Line 20: Line 20:
   
   
  self.SomeDouble:=self.SomeDecimal.todouble
  self.SomeDouble:=self.SomeDecimal.todouble
[[Category:OCL]]
[[Category:OCL]]

Revision as of 07:13, 22 August 2023

The numeric types float, double, decimal, and int are sort of apples from the same tree and MDriven exposes ways to go from all numeric types to decimal. The operator is called toDecimal.

Sometimes, you may want to assign from one type to another like this:

self.PaymentMenuRequest.VatPercent:=vTypAvBiljett.BiljettPrisMoms

but you get an error like 998: In ":=", one of the arguments must conform to the other (Nullable<System.Double> and Nullable<System.Decimal> do not).

Solve like this:

self.PaymentMenuRequest.VatPercent:=vTypAvBiljett.BiljettPrisMoms.todouble

These are valid assignments, but you change precision and lose fractions when converting to simpler types:

self.SomeInt:=self.SomeDouble

self.SomeDouble:=self.SomeInt

self.SomeDecimal:=self.SomeInt

self.SomeDecimal:=self.SomeDouble.todecimal

self.SomeInt:=self.SomeDecimal

self.SomeDouble:=self.SomeDecimal.todouble
This page was edited 96 days ago on 02/10/2024. What links here