Fix decimaltype float constructor
This commit is contained in:
parent
1683cf8cef
commit
102548d22c
|
@ -74,7 +74,7 @@ public class DecimalType extends PrimitiveType<BigDecimal> implements Comparable
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
public DecimalType(long theValue) {
|
public DecimalType(long theValue) {
|
||||||
setValue(new BigDecimal(theValue));
|
setValue(theValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -148,21 +148,21 @@ public class DecimalType extends PrimitiveType<BigDecimal> implements Comparable
|
||||||
* Sets a new value using an integer
|
* Sets a new value using an integer
|
||||||
*/
|
*/
|
||||||
public void setValueAsInteger(int theValue) {
|
public void setValueAsInteger(int theValue) {
|
||||||
setValue(new BigDecimal(theValue));
|
setValue(BigDecimal.valueOf(theValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a new value using a long
|
* Sets a new value using a long
|
||||||
*/
|
*/
|
||||||
public void setValue(long theValue) {
|
public void setValue(long theValue) {
|
||||||
setValue(new BigDecimal(theValue));
|
setValue(BigDecimal.valueOf(theValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a new value using a double
|
* Sets a new value using a double
|
||||||
*/
|
*/
|
||||||
public void setValue(double theValue) {
|
public void setValue(double theValue) {
|
||||||
setValue(new BigDecimal(theValue));
|
setValue(BigDecimal.valueOf(theValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
package ca.uhn.fhir.model;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import org.hl7.fhir.dstu3.model.DecimalType;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class DecimalTypeTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDoubleValue() {
|
||||||
|
DecimalType d = new DecimalType(1.2D);
|
||||||
|
assertEquals("1.2", d.getValueAsString());
|
||||||
|
|
||||||
|
d = new DecimalType();
|
||||||
|
d.setValue(1.2D);
|
||||||
|
assertEquals("1.2", d.getValueAsString());
|
||||||
|
|
||||||
|
d = new DecimalType();
|
||||||
|
d.setValue(10);
|
||||||
|
assertEquals("10", d.getValueAsString());
|
||||||
|
|
||||||
|
d = new DecimalType();
|
||||||
|
d.setValue(10L);
|
||||||
|
assertEquals("10", d.getValueAsString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -359,6 +359,11 @@
|
||||||
Server now supports the _at parameter (including multiple repetitions)
|
Server now supports the _at parameter (including multiple repetitions)
|
||||||
for history operation
|
for history operation
|
||||||
</action>
|
</action>
|
||||||
|
<action type="fix">
|
||||||
|
DecimalType used BigDecimal constructor instead of valueOf method to
|
||||||
|
create a BigDecimal from a double, resulting in weird floating point
|
||||||
|
conversions. Thanks to Craig McClendon for reporting!
|
||||||
|
</action>
|
||||||
</release>
|
</release>
|
||||||
<release version="1.5" date="2016-04-20">
|
<release version="1.5" date="2016-04-20">
|
||||||
<action type="fix" issue="339">
|
<action type="fix" issue="339">
|
||||||
|
|
Loading…
Reference in New Issue