| 1036 | |
| 1037 | template <class DecimalClass> |
| 1038 | static bool RescaleWouldCauseDataLoss(const DecimalClass& value, int32_t delta_scale, |
| 1039 | const DecimalClass& multiplier, |
| 1040 | DecimalClass* result) { |
| 1041 | if (delta_scale < 0) { |
| 1042 | DCHECK_NE(multiplier, 0); |
| 1043 | DecimalClass remainder; |
| 1044 | auto status = value.Divide(multiplier, result, &remainder); |
| 1045 | DCHECK_EQ(status, DecimalStatus::kSuccess); |
| 1046 | return remainder != 0; |
| 1047 | } |
| 1048 | |
| 1049 | *result = value * multiplier; |
| 1050 | return (value < 0) ? *result > value : *result < value; |
| 1051 | } |
| 1052 | |
| 1053 | template <class DecimalClass> |
| 1054 | DecimalStatus DecimalRescale(const DecimalClass& value, int32_t original_scale, |
no test coverage detected