Stroika Library 3.0d23
 
Loading...
Searching...
No Matches
FloatConversion.cpp
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2026. All rights reserved
3 */
4#include "Stroika/Foundation/StroikaPreComp.h"
5
6#include <charconv>
7#include <cstdarg>
8#include <cstdlib>
9#include <iomanip>
10#include <limits>
11#include <sstream>
12
15#include "Stroika/Foundation/Containers/Common.h"
19#include "Stroika/Foundation/Math/Common.h"
20
21#include "FloatConversion.h"
22
23using namespace Stroika::Foundation;
25using namespace Stroika::Foundation::Memory;
26
27/*
28 ********************************************************************************
29 ********************* FloatConversion::SignificantFigures **********************
30 ********************************************************************************
31 */
33{
35 sb << "{"sv;
36 if (fSignificantFigures_) {
37 sb << "SignificantFigures:"sv << *fSignificantFigures_;
38 }
39 else {
40 sb << "FULL"sv;
41 }
42 sb << "}"sv;
43 return sb;
44}
45
46/*
47 ********************************************************************************
48 ******************** FloatConversion::ToStringOptions **************************
49 ********************************************************************************
50 */
52{
54 sb << "{"sv;
55 if (fSignificantFigures_) {
56 sb << "SignificantFigures:"sv << *fSignificantFigures_ << ","sv;
57 }
58 if (fFmtFlags_) {
59 sb << "Fmt-Flags:"sv << Characters::ToString ((int)*fFmtFlags_, ios_base::hex) << ","sv;
60 }
61 if (fUseLocale_) {
62 sb << "Use-Locale"sv << String::FromNarrowSDKString (fUseLocale_->name ()) << ","sv;
63 }
64 if (fTrimTrailingZeros_) {
65 sb << "Trim-Trailing-Zeros: "sv << *fTrimTrailingZeros_ << ","sv;
66 }
67 if (fFloatFormat_) {
68 sb << "Scientific-Notation: "sv << (int)*fFloatFormat_ << ","sv;
69 }
70 sb << "}"sv;
71 return sb;
72}
Include this file VERY EARLY ON - before including stuff like <cstdio> - to allow use of Valgrind (so...
Similar to String, but intended to more efficiently construct a String. Mutable type (String is large...
String is like std::u32string, except it is much easier to use, often much more space efficient,...
Definition String.h:201
static String FromNarrowSDKString(const char *from)
Definition String.inl:470
String ToString(T &&t, ARGS... args)
Return a debug-friendly, display version of the argument: not guaranteed parsable or usable except fo...
Definition ToString.inl:465