diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-09-02 14:39:33 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-09-02 14:39:33 -0700 |
commit | 3dc3c72c4327f5f7cdeb28b1bb80cc8c67cb2c5b (patch) | |
tree | b26a52e57ff187fbe74d59f83cac605eb7ee468a /010vm.cc | |
parent | 6f7e2f575604e79edea0fadb3901a61438f24f0f (diff) | |
download | mu-3dc3c72c4327f5f7cdeb28b1bb80cc8c67cb2c5b.tar.gz |
3293
Diffstat (limited to '010vm.cc')
-rw-r--r-- | 010vm.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/010vm.cc b/010vm.cc index 9c57b3bc..cce19e3d 100644 --- a/010vm.cc +++ b/010vm.cc @@ -669,24 +669,27 @@ ostream& operator<<(ostream& os, no_scientific x) { string trim_floating_point(const string& in) { if (in.empty()) return ""; + if (in.find('.') == string::npos) return in; int length = SIZE(in); while (length > 1) { if (in.at(length-1) != '0') break; --length; } if (in.at(length-1) == '.') --length; + if (length == 0) return "0"; return in.substr(0, length); } void test_trim_floating_point() { CHECK_EQ(trim_floating_point(""), ""); - CHECK_EQ(trim_floating_point("000000000"), "0"); + CHECK_EQ(trim_floating_point(".0"), "0"); CHECK_EQ(trim_floating_point("1.5000"), "1.5"); CHECK_EQ(trim_floating_point("1.000001"), "1.000001"); CHECK_EQ(trim_floating_point("23.000000"), "23"); CHECK_EQ(trim_floating_point("23.0"), "23"); CHECK_EQ(trim_floating_point("23."), "23"); CHECK_EQ(trim_floating_point("23"), "23"); + CHECK_EQ(trim_floating_point("230"), "230"); CHECK_EQ(trim_floating_point("3.000000"), "3"); CHECK_EQ(trim_floating_point("3.0"), "3"); CHECK_EQ(trim_floating_point("3."), "3"); |