diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-11-29 13:26:48 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-11-29 13:26:48 -0800 |
commit | 55dfa5b98530bdeae19f5e1f118634d9c774773f (patch) | |
tree | 2f9b18b57f2d383571cafb13639f0ac0efeffc2a /412print-float-decimal.mu | |
parent | e1eadf67bb328b560e6e8ddf8edbedb63bfe5973 (diff) | |
download | mu-55dfa5b98530bdeae19f5e1f118634d9c774773f.tar.gz |
7305 - make float-size more consistent as well
Diffstat (limited to '412print-float-decimal.mu')
-rw-r--r-- | 412print-float-decimal.mu | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/412print-float-decimal.mu b/412print-float-decimal.mu index 00514f21..afd73d45 100644 --- a/412print-float-decimal.mu +++ b/412print-float-decimal.mu @@ -595,18 +595,29 @@ fn float-size in: float, precision: int -> _/eax: int { return 8 # hacky for scientific notation } - var result/eax: int <- copy n + # result = min(n, dp+3) + var result/ecx: int <- copy dp + result <- add 3 + { + compare result, n + break-if-<= + result <- copy n + } + + # account for decimal point + compare dp, n { - compare result, dp break-if->= - result <- copy dp + result <- increment } + + # account for sign var sign/edx: int <- reinterpret in sign <- shift-right 0x1f { compare sign, 1 break-if-!= - result <- increment # for "-" + result <- increment } return result } |