Skip to content

Commit df99e77

Browse files
committed
use ethnum
1 parent 7501085 commit df99e77

File tree

3 files changed

+7
-12
lines changed

3 files changed

+7
-12
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ rust-version = "1.80"
2727

2828
[dependencies]
2929
byteorder = "1.5.0"
30+
ethnum = "1.5.1"
3031
fast-float2 = "0.2.3"
31-
i256 = "0.2.2"
3232
itoa = "1.0"
3333
jiff = "0.2.8"
3434
nom = "8.0.0"

src/core/databend/util.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use std::io::Write;
1818

1919
use byteorder::BigEndian;
2020
use byteorder::WriteBytesExt;
21-
use i256::i256;
21+
use ethnum::i256;
2222

2323
use super::constants::*;
2424
use super::jentry::JEntry;

src/number.rs

+5-10
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use serde::de::Visitor;
2828
use serde::ser::Serialize;
2929
use serde::ser::Serializer;
3030

31-
use i256::i256;
31+
use ethnum::i256;
3232

3333
#[derive(Debug, Clone)]
3434
pub struct Decimal128 {
@@ -53,9 +53,8 @@ pub struct Decimal256 {
5353

5454
impl Decimal256 {
5555
pub fn to_float64(&self) -> f64 {
56-
let _div = 10_f64.powi(self.scale as i32);
57-
//self.value.to_f64().unwrap() / div
58-
todo!()
56+
let div = 10_f64.powi(self.scale as i32);
57+
self.value.as_f64() / div
5958
}
6059
}
6160

@@ -197,13 +196,9 @@ impl Number {
197196
Ok(Number::Decimal128(neg_dec))
198197
}
199198
Number::Decimal256(v) => {
200-
let (neg_value, is_overflow) = v.value.overflowing_neg();
201-
if is_overflow {
202-
return Err(Error::Message("Decimal256 overflow".to_string()));
203-
}
204199
let neg_dec = Decimal256 {
205200
scale: v.scale,
206-
value: neg_value,
201+
value: v.value * -1,
207202
};
208203
Ok(Number::Decimal256(neg_dec))
209204
}
@@ -526,7 +521,7 @@ impl Display for Number {
526521
} else {
527522
let pow_scale = i256::from(10).pow(v.scale as u32);
528523
// -1/10 = 0
529-
if v.value >= i256::from(0) {
524+
if v.value >= 0 {
530525
write!(
531526
f,
532527
"{}.{:0>width$}",

0 commit comments

Comments
 (0)