Fixed adding/subtracting with temperatures of the same type
This commit is contained in:
parent
81b987e14f
commit
801fbcf974
@ -267,7 +267,9 @@ pub fn convert_to_lowest(left: Number, right: Number) -> Result<(Number, Number)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn add(left: Number, right: Number) -> Result<Number, String> {
|
pub fn add(left: Number, right: Number) -> Result<Number, String> {
|
||||||
if left.unit.category() == right.unit.category() && left.unit.category() != Temperature {
|
if left.unit == right.unit {
|
||||||
|
Ok(Number::new(left.value + right.value, left.unit))
|
||||||
|
} else if left.unit.category() == right.unit.category() && left.unit.category() != Temperature {
|
||||||
let (left, right) = convert_to_lowest(left, right)?;
|
let (left, right) = convert_to_lowest(left, right)?;
|
||||||
Ok(Number::new(left.value + right.value, left.unit))
|
Ok(Number::new(left.value + right.value, left.unit))
|
||||||
} else {
|
} else {
|
||||||
@ -276,7 +278,9 @@ pub fn add(left: Number, right: Number) -> Result<Number, String> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn subtract(left: Number, right: Number) -> Result<Number, String> {
|
pub fn subtract(left: Number, right: Number) -> Result<Number, String> {
|
||||||
if left.unit.category() == right.unit.category() && left.unit.category() != Temperature {
|
if left.unit == right.unit {
|
||||||
|
Ok(Number::new(left.value - right.value, left.unit))
|
||||||
|
} else if left.unit.category() == right.unit.category() && left.unit.category() != Temperature {
|
||||||
let (left, right) = convert_to_lowest(left, right)?;
|
let (left, right) = convert_to_lowest(left, right)?;
|
||||||
Ok(Number::new(left.value - right.value, left.unit))
|
Ok(Number::new(left.value - right.value, left.unit))
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user