File tree 3 files changed +7
-12
lines changed
3 files changed +7
-12
lines changed Original file line number Diff line number Diff line change @@ -27,8 +27,8 @@ rust-version = "1.80"
27
27
28
28
[dependencies ]
29
29
byteorder = " 1.5.0"
30
+ ethnum = " 1.5.1"
30
31
fast-float2 = " 0.2.3"
31
- i256 = " 0.2.2"
32
32
itoa = " 1.0"
33
33
jiff = " 0.2.8"
34
34
nom = " 8.0.0"
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ use std::io::Write;
18
18
19
19
use byteorder:: BigEndian ;
20
20
use byteorder:: WriteBytesExt ;
21
- use i256 :: i256;
21
+ use ethnum :: i256;
22
22
23
23
use super :: constants:: * ;
24
24
use super :: jentry:: JEntry ;
Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ use serde::de::Visitor;
28
28
use serde:: ser:: Serialize ;
29
29
use serde:: ser:: Serializer ;
30
30
31
- use i256 :: i256;
31
+ use ethnum :: i256;
32
32
33
33
#[ derive( Debug , Clone ) ]
34
34
pub struct Decimal128 {
@@ -53,9 +53,8 @@ pub struct Decimal256 {
53
53
54
54
impl Decimal256 {
55
55
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
59
58
}
60
59
}
61
60
@@ -197,13 +196,9 @@ impl Number {
197
196
Ok ( Number :: Decimal128 ( neg_dec) )
198
197
}
199
198
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
- }
204
199
let neg_dec = Decimal256 {
205
200
scale : v. scale ,
206
- value : neg_value ,
201
+ value : v . value * - 1 ,
207
202
} ;
208
203
Ok ( Number :: Decimal256 ( neg_dec) )
209
204
}
@@ -526,7 +521,7 @@ impl Display for Number {
526
521
} else {
527
522
let pow_scale = i256:: from ( 10 ) . pow ( v. scale as u32 ) ;
528
523
// -1/10 = 0
529
- if v. value >= i256 :: from ( 0 ) {
524
+ if v. value >= 0 {
530
525
write ! (
531
526
f,
532
527
"{}.{:0>width$}" ,
You can’t perform that action at this time.
0 commit comments