Skip to content

Commit 2f6c9f9

Browse files
committed
Format reals containing integers when output
1 parent 2ce9e41 commit 2f6c9f9

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/nodes/io/io.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,14 @@ std::unique_ptr<NodeResult> OutputNode::evaluate(PSC::Context &ctx) {
1616
case PSC::DataType::INTEGER:
1717
std::cout << result->get<PSC::Integer>();
1818
break;
19-
case PSC::DataType::REAL:
20-
std::cout << result->get<PSC::Real>();
19+
case PSC::DataType::REAL: {
20+
PSC::real_t value = result->get<PSC::Real>();
21+
std::cout << value;
22+
23+
double integerValue;
24+
if (std::modf(value, &integerValue) == 0.0) std::cout << ".0";
2125
break;
22-
case PSC::DataType::BOOLEAN:
26+
} case PSC::DataType::BOOLEAN:
2327
std::cout << (result->get<PSC::Boolean>() ? "TRUE" : "FALSE");
2428
break;
2529
case PSC::DataType::CHAR:

src/psc/scope/block.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,14 @@ void Block::runNodeREPL(Node *node, PSC::Context &ctx) {
2121
case PSC::DataType::INTEGER:
2222
std::cout << result->get<PSC::Integer>();
2323
break;
24-
case PSC::DataType::REAL:
25-
std::cout << result->get<PSC::Real>();
24+
case PSC::DataType::REAL: {
25+
PSC::real_t value = result->get<PSC::Real>().value;
26+
std::cout << value;
27+
28+
double integerValue;
29+
if (std::modf(value, &integerValue) == 0.0) std::cout << ".0";
2630
break;
27-
case PSC::DataType::BOOLEAN:
31+
} case PSC::DataType::BOOLEAN:
2832
std::cout << (result->get<PSC::Boolean>() ? "TRUE" : "FALSE");
2933
break;
3034
case PSC::DataType::CHAR:

0 commit comments

Comments
 (0)